繁体   English   中英

替换所有用“或”括起来的字符串

[英]Replacing all string enclosed with " or '

text = abc "def" g'i' jklm'no' p"qrs uv w"

应该成为abc !string! g !string! jklm!string! p !string! abc !string! g !string! jklm!string! p !string!

到目前为止我有什么:

if(/(?:'[^']+'|"[^"]+")/.test(text){
   text = text.replace(/(?:'[^']+'|"[^"]+")/, "!string!");
}   

(杰瑞的回答)

它只替换第一次出现的用''或'“括起来的文本。 这实际上与我之前的问题有关,但我认为这更复杂: 如何在正则表达式中搜索“或”的第二次出现?

g修饰符执行全局匹配

text = text.replace(/(?:'[^']+'|"[^"]+")/g, "!string!");

尝试这个

str = "abc \"def\" g'i' jklm'no' p\"qrs uv w\"";
mystring = str.replace(/("|')+[a-z ]+("|')/g, '!sring!');
alert(mystring);

输出

abc !string! g !string! jklm!string! p !string!

使用全局参数“g”

str.replace(/blue/g,"red");

这个怎么样

var str = "abc \"def\" g'i' jklm'no' p\"qrs uv w\"";
var regexp = /("|')[a-z ]+("|')/g;
console.log(str.replace(regexp,'!string!'));

Regexpr结果

结果: abc !string! g!string! jklm!string! p!string! abc !string! g!string! jklm!string! p!string!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM