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

省略斜杠,因为它们不是正则表达式本身的一部分。

09-17 16:48