我在JavaScript表单验证中遇到问题。我必须以1-74347064527的格式存储号码 我尝试过这些正则表达式但没有正常工作:
var srNo =/^[-0-9]*$/;
var srNo = /^[0-9]+(-[0-9]+)+$/;
var srNo=/^([0-9]+-)*[0-9]+$/;
为此建议一些正则表达式。 亲切的问候。
答案 0 :(得分:1)
除非您有其他限制,否则这应该有效:
var srNo = /^\d+-\d+$/;
如果您更喜欢[0-9]
语法:
var srNo = /^[0-9]+-[0-9]+$/;
答案 1 :(得分:0)
在字符类( [ ]
)中,短划线(-
)在正则表达式中具有特殊含义 - 它表示"范围",例如。 a-z
表示from 'a' to 'z'
。你没有逃脱它,所以你的RegExps甚至不正确(至少不是每种语言)。
更新:看来,如果短划线没有被其他字符包围(当它放在字符类的开头或结尾时),这种语法是正确的。抱歉混淆。
请改为尝试:
/^\d\-\d+$/
它匹配以一位数开头的字符串,然后是破折号,然后是一位或多位数。
答案 2 :(得分:0)
var regex = /^\d{1}-?\d{11}$/g
window.alert(regex.test('1-74347064527'));