有没有办法将变量传递给 jQuery/Javascript 中的正则表达式?
我想做类似的事情:
var variable_regex = "bar";
var some_string = "foobar";
some_string.match(/variable_regex/);
在 Ruby 中,您可以执行以下操作:
some_string.match(/#{variable_regex}/)
找到一个有用的帖子:
有没有办法将变量传递给 jQuery/Javascript 中的正则表达式?
我想做类似的事情:
var variable_regex = "bar";
var some_string = "foobar";
some_string.match(/variable_regex/);
在 Ruby 中,您可以执行以下操作:
some_string.match(/#{variable_regex}/)
找到一个有用的帖子:
Javascript 不支持像 Ruby 那样的插值——你必须使用RegExp
构造函数:
var aString = "foobar";
var pattern = "bar";
var matches = aString.match(new RegExp(pattern));
这简单:
var variable_regex = "bar";
var some_string = "foobar";
some_string.match(variable_regex);
只是失去//。如果要使用复杂的正则表达式,可以使用字符串连接:
var variable_regex = "b.";
var some_string = "foobar";
alert (some_string.match("f.*"+variable_regex));
这很简单,您需要创建一个RegExp
带有变量的实例。当我搜索答案时,我还希望将这个字符串插入到相关变量中。
在浏览器控制台中试一试:
const b = 'b';
const result = (new RegExp(`^a${b}c$`)).test('abc');
console.log(result);
在字符串中包含变量的另一种方法是通过字符串插值。在 JavaScript 中,您可以使用模型文字在字符串中插入或插入变量:
var name = "Jack";
var id = 123321;
console.log(`Hello, ${name} your id is ${id}.`);
注意:注意不要将引号或撇号与重音 (`) 混淆。
您可以在函数中使用:
function myPhrase(name, id){
return `Hello, ${name} your id is ${id}.`;
}