No entiendo muy bien cómo estás haciendo las pruebas, porque a mí me funciona bien:
Código Javascript
:
Ver originalalert(/^\d+-?(\d+)?$/.test("texto")); // false
alert(/^\d+-?(\d+)?$/.test("123")); // true
alert(/^\d+-?(\d+)?$/.test("111-1")); // true
alert(/^\d+-?(\d+)?$/.test("111-1-1")); // false