JavaScript Regex(替换),如果缺少一个又一个单词
JavaScript Regex (replace) if absence of word after other word
假设我有以下字符串:
b(hello world)b
现在我想把b(
变成b(<b>
,但前提是没有添加<b>
。这是我目前得到的:
var string = "abc b(yolo)b cba";
string.replace("b'((?!<b>)", "b(<b>");
不幸的是,我以前从未使用过Regex语句,所以我不知道我在做什么,它不工作…
所以,如果你理解我的问题,请提供答案,也许解释一下你是如何寻求一个没有<b>
的b(
的,因为这是这里的主要困难。
try this:
string.replace(/b'((?!<b>)/g, 'b(<b>')
你是在正确的轨道上,但字符串不是一个有效的正则表达式在javascript中,负向前看是?!
而不是!?
编辑-你的后续问题
您需要反向查看,首先检查</b>
是否在)b
之前出现。Javascript regex引擎不支持向后看,但你可以通过回调来实现:
string.replace(/(<'/b>)?')b/g, (m, c) => c ? m : `</b>${m}`)
或者如果不支持es6
string.replace(/(<'/b>)?')b/g, function (m, c) {
return c ? m : '</b>' + m
})
相关文章:
- jQuery使一个又一个充满活力
- RaphaelJS:如何制作一个又一个元素的动画
- 如何运行一个又一个脚本
- 使用 jQuery animate 时绘制一个又一个对象的线条
- 为什么当我调用一个又一个函数时,它调用的都是以前的
- 在 JavaScript 中延迟一个又一个函数的最佳方法
- 在 Ajax 加载的外部 html 中调用一个又一个脚本的事件
- JavaScript:一个又一个循环不执行
- 如何在Javascript中以过程化的方式运行一个又一个语句
- $('html').单击一个又一个单击事件
- WebGL-呈现一个又一个形状时出现问题
- 如何化解一个又一个的承诺
- 如何使用
- JavaScript Regex(替换),如果缺少一个又一个单词
- 用buzz.js播放一个又一个声音
- 从URL运行一个又一个函数
- 如何启动一个又一个脚本
- 玩一个又一个精灵表
- 如何在D3.js中运行一个又一个函数
- PhantomJS打开一个又一个页面