Javascript:从替换中的正则表达式中排除

标签 javascript regex replace

在此正则表达式中:

let str = "hello 〔world〕,foo、bar。";
str.replace(/(〔(.*?)〕|(、)|(,)|(。))/gi,'<div>$1</div>');

如何从结果中排除这两个方括号“〔”和“〕”?

为了得到这个结果:

"hello <div>world</div><div>,</div>foo<div>、</div>bar<div>。</div>"

最佳答案

您可以使用两个组,而不是使用单个组。在基于组的回调中,您可以相应地返回值

let str = "hello 〔world〕,foo、bar。";
str = str.replace(/〔(.*?)〕|((…)|(。)|(,)|(、))/gi,(match,g1,g2)=>`<div>${g1 ? g1 : g2}</div>`);

console.log(str)

关于Javascript:从替换中的正则表达式中排除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55545567/

相关文章:

javascript - 具有最大行数和每行最大字符数的文本区域

javascript - 如何在 pjax 加载之前和之后运行 jQuery?

regex - 避免在正则表达式中转义字符

javascript - 查找值并从深度嵌套的对象数组中删除与该数组关联的整个对象

javascript - 如何停止跳转到 Angular-UI Bootstrap 模式窗口之外的元素?

java - Java 中的正则表达式和字符串数组

regex - 需要有关使用非捕获组的 Grok 模式的信息 (? : )

jQuery 将两个特定单词之间的空格替换为不间断空格

javascript 方法替换未按预期工作

jquery - 每次用jquery在css中用那种颜色替换这种颜色