我试图重写这个方法(来自于w3schools的教程的一部分)。
问题是将一个可变的字符串变成正则表达式的一部分。
教程示例代码:
function myFunction() {
var str = "The rain in SPAIN stays mainly in the plain";
var res = str.match(/ain/gi);
console.log(res)
}
我尝试了:
function myFunction() {
var str = "The rain in SPAIN stays mainly in the plain";
var test = "ain";
var re = "/"+test+"/gi";
var res = str.match(re);
console.log(res);
}
我尝试的方法没有奏效。
str.match
的原因。如果我们不传递它,结果只是Array [ "ain" ]
:没有全局搜索和不区分大小写搜索。因此,我认为默认情况下没有向RegExp
构造函数传递任何内容。 - TrapIIString.prototype.match
没有接受两个参数的重载。至少在规范和Chrome实现中是如此。你的代码在Chrome 42上的结果是Array [ "ain" ]
。 - CodingIntrigue