正则表达式允许包含破折号的数字

时间:2020-04-24 15:54:35

标签: jquery regex

我正在使用以下处理程序,仅允许数字作为输入。

$(document).on("input", "[data-rule-number=true]", function () {
    this.value = this.value.replace(/\D/g, '');
});

我想对其进行修改,使其能够包含破折号。 “ 200-300”(最多一个破折号,而不是“ 200-300-400”),但无法将我的头缠在所需的正则表达式上。也许我不应该一开始就使用replace,但是我喜欢这种解决方案,因为它基于“ input”事件并且适用于所有设备。

因此,有效输入应该是数字(例如“ 200”)或数字破折号(例如“ 200-300”)。

1 个答案:

答案 0 :(得分:0)

此正则表达式应在输入字符串中使用破折号:

value.replace(/^([^-]+-)|-+/g, '$1').replace(/[^\d-]+/g, '')