本文介绍在 JavaScript 中如何使用正则表达式的 'g' 标志实现字符串的全局替换。默认情况下,String.prototype.replace 仅替换第一个匹配项,通过构造带有 'g' 标志的正则表达式,可以一次性替换所有符合条件的子串,适用于清理 HTML 标签或批量修改文本内容。
JavaScript 字符串全局替换问题与解决方案
在 JavaScript 开发中,处理字符串替换时,常见的写法如 replyText = replyText.replace("aa", "");
这种写法存在局限性,它只会替换字符串中出现的第一个 "aa" 实例。若需求是移除或替换所有匹配的 "aa",该方法无法直接满足要求。
可以通过以下代码示例参考解决方案:
代码如下:
function del_html_tags(str, reallyDo, replaceWith) {
var e = new RegExp(reallyDo, "g");
words = str.replace(e, replaceWith);
return words;
} str是目标字符串
reallyDo是替换谁
replaceWith是替换成什么。
var replyText="<p>恭恭敬敬恭恭敬敬恭恭敬敬</p><p><br /></p><p>恭恭敬敬恭恭敬敬恭恭敬敬恭恭敬敬</p><p><br /></p>";
eg:
代码如下:
replyText= del_html_tags(replyText,"<br />"," ");
replyText= del_html_tags(replyText,"<p>","");
replyText= del_html_tags(replyText,"</p>",""); 就可以得到
"恭恭敬敬恭恭敬敬恭恭敬敬 恭恭敬敬恭恭敬敬恭恭敬敬恭恭敬敬"