Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/388.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 仅带数字和破折号的正则表达式_Javascript_Regex_Validation - Fatal编程技术网

Javascript 仅带数字和破折号的正则表达式

Javascript 仅带数字和破折号的正则表达式,javascript,regex,validation,Javascript,Regex,Validation,我在JavaScript表单验证中面临一个问题。我必须以这种格式存储数字1-74347064527 我尝试过这些正则表达式,但没有正常工作: var srNo =/^[-0-9]*$/; var srNo = /^[0-9]+(-[0-9]+)+$/; var srNo=/^([0-9]+-)*[0-9]+$/; 为此建议一些正则表达式。 致以问候。除非您有其他限制,否则这应该有效: var srNo = /^\d+-\d+$/; 如果您喜欢[0-9]语法: var srNo = /^[0

我在JavaScript表单验证中面临一个问题。我必须以这种格式存储数字1-74347064527 我尝试过这些正则表达式,但没有正常工作:

var srNo =/^[-0-9]*$/;
var srNo = /^[0-9]+(-[0-9]+)+$/; 
var srNo=/^([0-9]+-)*[0-9]+$/;
为此建议一些正则表达式。
致以问候。

除非您有其他限制,否则这应该有效:

var srNo = /^\d+-\d+$/;
如果您喜欢
[0-9]
语法:

var srNo = /^[0-9]+-[0-9]+$/;
在字符类(
[]
)中,破折号(
-
)在正则表达式中具有特殊含义-它表示“范围”,例如
a-z
表示
从“a”到“z”
。您没有逃避它,因此您的regexp甚至不正确(至少不是在所有语言中)

更新:当破折号没有被其他字符包围时(当破折号放在字符类的开头或结尾时),此语法似乎是正确的。抱歉搞混了

请尝试以下方法:

/^\d\-\d+$/

它匹配以一个数字开头的字符串,后跟破折号,然后是一个或多个数字。

有什么问题吗
^[0-9]+-[0-9]+$
^\d+-\d+$
?@hwnd您的意思是这个变量srNo=/^\d+-\d+/;正确的?它不工作!如果您能提供更多的示例或尝试,可能会有所帮助。
var regex = /^\d{1}-?\d{11}$/g
window.alert(regex.test('1-74347064527'));