正则表达式不匹配结果

RegExp not matching results

我正在尝试匹配 javascript 中的模式。

示例如下:

var pattern = "/^[a-z0-9]+$/i"; // This is should accept on alpha numeric characters.
var reg = new RegExp(pattern);
console.log("Should return false : "+reg.test("This $hould return false"));
console.log("Should return true : "+reg.test("Thisshouldreturntrue"));

当我 运行 这两个结果都是假的。 我确实认为我缺少一些简单的东西。但是有点迷茫。

提前致谢。

如果您使用 RegExp 构造函数,则无需使用斜线。 您可以使用不带双引号的封闭斜线来表示正则表达式,或者传递一个字符串 (通常用引号括起来)到 RegExp 构造函数:

var pattern = "^[a-z0-9]+$"; // This is should accept on alpha numeric characters.
var reg = new RegExp(pattern, "i");
console.log("Should return false : "+reg.test("This $hould return false"));
console.log("Should return true : "+reg.test("Thisshouldreturntrue"));

你的模式是错误的。您不需要在此处使用 RegExp 构造函数。并且您需要忽略大小写标志或将大写字母添加到范围。

var reg = /^[a-zA-Z0-9]+$/;
console.log("Should return false : "+reg.test("This $hould return false"));
console.log("Should return true : "+reg.test("Thisshouldreturntrue"));