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./-]+$");