如果您没有其他括号,应该很容易。
mystring = mystring.replace("check(", "someothercheck\\(");
mystring = mystring.replace(")", "\\)");
编辑这工作也多括号的情况下(这不会影响空的)。 var str =“abcdef; check(x,y); cef();” PATT = /((\ W)/克;?
// transform (x in \(x
str = str.replace(patt, '\\($1');
patt = /(\w)\)/g
// transform y) in y\);
str = str.replace(patt, '$1\\)');
// transform check in someothercheck
str = str.replace('check', 'someothercheck');
编辑现在只能转换检查字符串
function convertCheck(str, check, someOtherCheck) {
// console.log(str + " contains " + check + "? ");
// console.log(str.indexOf(check));
if (str.indexOf(check) === -1) return str;
var patt1 = /\((\w)/g,
patt2 = /(\w)\)/g;
str = str.replace(patt1, '\\($1');
str = str.replace(patt2, '$1\\)');
str = str.replace(check, someOtherCheck);
return str;
}
var str = "abcdef(); check(x,y); cef();",
tokens = str.split(';');
for (var i = 0; i < tokens.length; i++) {
tokens[i] = convertCheck(tokens[i], "check", "someothercheck");
}
str = tokens.join(";");
alert(str); // "abcdef(); someothercheck/(x,y/); cef();"
为什么一个正则表达式只是字符串替换 “检查”用“someothercheck”和“(”用“\\(”和“)”用“\\”)。 –
like mystring.replace('check','somothercheck')。replace('(','\\\ (').replace(')','\\\')'); http://jsfiddle.net/ytnRx/ – stecb
3个正则表达式优于1个 –