无法获取所有可能重叠的正则表达式匹配项
Cannot get all possible overlapping regular expression matches
我有字符串
Started: 11.11.2014 11:19:28.376<br/>Ended: 1.1.4<br/>1:9:8.378<br/>Request took: 0:0:0.2
我需要加零,以防遇到1:1:8,应该是01:01:08,日期也是如此。我试过使用
/((:|'.|'s)[0-9](:|'.))/g
但它并没有给出所有可能的重叠匹配。如何修复?
var str = "Started: 11.11.2014 11:19:28.376<br/>Ended: 11.11.2014<br/>11:19:28.378<br/>Request took: 0:0:0.2";
var re = /((:|'.|'s)[0-9](:|'.))/g
while ((match = re.exec(str)) != null) {
//alert("match found at " + match.index);
str = [str.slice(0,match.index), '0', str.slice(match.index+1,str.length)];
}
alert(str);
这可能会达到您想要的效果:
str.replace(/'b'd'b/g, "0$&")
它搜索单独的数字'd
和前面的焊盘0
。
第一个字边界'b
检查前面没有[a-zA-Z0-9_]
,第二个检查数字后面没有[a-zA-Z0-9_]
。
替换字符串中的$&
表示整个匹配。
如果您想填充0
,只要前后字符不是数字:
str.replace(/(^|'D)('d)(?!'d)/g, "$10$2")
相关文章:
- java.net和javascript之间正则表达式的差异
- Grunt匹配正则表达式
- 不同浏览器中的空白字符正则表达式行为
- 正则表达式在字符串中找到base64
- 子字符串/正则表达式以获取字符串中保存的 SRC 值
- 调用正则表达式匹配的函数
- 使用正则表达式评估电子邮件地址时出现性能问题
- Javascript 正则表达式 : ^[^/s/]+[a-z]{1,}[0-9]*[-_]*[^/][
- JavaScript正则表达式文本与RegExp对象
- 正则表达式只允许 x 个整数
- 使用正则表达式将输入格式设置为单字符逗号、单字符逗号等
- 改进用于验证付款金额的正则表达式
- 正则表达式与数字中的第二个点匹配
- 键按正则表达式以查找具有负值的小数
- 一个正则表达式,用于从JS中的HTML标记中删除id、样式和类属性
- 将po-box javascript正则表达式转换为c#regex
- 在mongoose中使用正则表达式在对象数组中进行查询搜索
- 无法获取所有可能重叠的正则表达式匹配项
- 是否有一种有效的方法来测试字符串是否包含非重叠子字符串以匹配正则表达式数组
- 如何用正则表达式匹配重叠的关键字