var regExpression = /^([a-zA-Z0-9_\-\.]+)$/; //line 2
//// var regExpression = "/" + "^([a-zA-Z0-9_\-\.]+)$" + "/"; //line 3
alert (regExpression.test("11aa"));
上面的代码工作正常。
但是,如果我们将第2行替换为第3行,那么它将无法正常工作
为什么?
我处于一种情况,例如我只想通过附加(表达式动态生成)来创建var,那我该怎么办?
最佳答案
第3行将regExpression
设置为字符串。字符串没有test
方法。您需要将字符串转换为RegExp。
var regExpression = new RegExp("^([a-zA-Z0-9_\\-\\.]+)$");
省略斜杠,因为它们不是正则表达式本身的一部分。