正则表达式为javascript中的序列号

时间:2015-06-30 10:34:59

标签: javascript regex

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

if (!serialNumberPattern.test(serialNumber)) {
}

上面是我用来验证序列号的代码,序列号中包含字母数字字符,点(。),破折号( - )和斜杠(/)但不知何故它不起作用。我哪里错了?请帮忙。

2 个答案:

答案 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'))