这是我想要做的一个例子:
function myFunction() {
var m = 'hi (hi) by akshin Jalilov';
var n = 'hi by akshin jalilov';
var y= 'hi (hi)';
var z= 'hi';
if (m.match(y)) {Logger.log('yes');
}else {Logger.log('no');}
if (n.match(z)) {Logger.log('yes');
}else {Logger.log('no');}
}
在第一种情况下,结果是“否”,而第二种情况显示“是”。为什么字符串中存在括号会破坏“.match”?如果我输入的数据必须有括号,有没有办法避免这种情况?
在此先感谢您的帮助。
非常感谢 Ian 的解决方案。
RegExp.escape = function(s) {
return s.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&');
};
function myFunction() {
var m = 'hi (hi) by akshin Jalilov';
var n = 'hi by akshin jalilov';
var y = 'hi (hi)';
var z = 'hi';
if (m.match(RegExp.escape(y))) {
console.log('yes');
} else {
console.log('no');
}
}
感谢大家的帮助。