var serialNumber = $('#SerialNumber').val();
var serialNumberPattern = new RegExp('^[\s\da-zA-z\-.]+$');
if (!serialNumberPattern.test(serialNumber)) {
}
上面是我用来验证序列号的代码,序列号中包含字母数字字符,点(。),破折号( - )和斜杠(/)但不知何故它不起作用。我哪里错了?请帮忙。
答案 0 :(得分:0)
当您将正则表达式传递给使用var serialNumberPattern = new RegExp("^[\\s\\da-zA-Z.-]+$");
作为正则表达式分隔符的RegExp构造函数时,您必须再次转义所有反斜杠。否则它将被视为逃逸序列。
var serialNumberPattern = new RegExp("^[\\da-zA-Z./-]+$");
字母数字,点(。),短划线( - ),斜线(/)。
text.replace(/[^0-9a-zA-Z\-\s]/g, '');
答案 1 :(得分:0)
只需使用/^[\s\da-zA-Z\-.\/]+$/
,它很简单,效果很好。
当表达式的某些部分使用变量时,您应该只使用RegExp
构造函数。在您的情况下情况并非如此,只会增加额外的混淆。
document.write(/^[\s\da-zA-Z\-.\/]+$/.test('23 43-89'))