Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.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 - Fatal编程技术网

javascript中序列号的正则表达式

javascript中序列号的正则表达式,javascript,regex,Javascript,Regex,上面是我用来验证序列号的代码,序列号中有字母数字字符、点(.)、破折号(-)和斜线(/),但不知何故它不起作用。我哪里做错了?请提供帮助。当您将正则表达式传递给使用“作为正则表达式分隔符的正则表达式构造函数时,必须再次转义所有反斜杠。否则,它将被视为转义序列 var serialNumber = $('#SerialNumber').val(); var serialNumberPattern = new RegExp('^[\s\da-zA-z\-.]+$'); if (!serialNum

上面是我用来验证序列号的代码,序列号中有字母数字字符、点(.)、破折号(-)和斜线(/),但不知何故它不起作用。我哪里做错了?请提供帮助。

当您将正则表达式传递给使用
作为正则表达式分隔符的正则表达式构造函数时,必须再次转义所有反斜杠。否则,它将被视为转义序列

var serialNumber = $('#SerialNumber').val();
var serialNumberPattern = new RegExp('^[\s\da-zA-z\-.]+$');

if (!serialNumberPattern.test(serialNumber)) {
}
字母数字,点(.),破折号(-),斜杠(/)


只需使用
/^[\s\da-zA-Z\-.\/]+$/
,它很简单而且工作正常

仅当表达式的某些部分使用变量时,才应使用
RegExp
构造函数。在您的情况下,情况并非如此,这只会增加额外的混淆


document.write(/^[\s\da-zA-Z\-.\/]+$/.test('23 43-89'))
再次转义所有反斜杠。多少次?点不也应该被斜杠吗?像
\.
使用RegExp文本,即
/^[\s\da-Z\/.-]+$/i
。您可以为我们提供两个应该被证明的序列号吗?一个应该可以工作,另一个应该失败?我可以知道原因吗?我不知道,但他们可能希望您使用RegExp literal。我尝试了这个,在测试23 43-89时显示为false
var serialNumberPattern = new RegExp("^[\\s\\da-zA-Z.-]+$");
var serialNumberPattern = new RegExp("^[\\da-zA-Z./-]+$");