要替换的Javascript Regex无法按预期工作
Javascript Regex to replace not working as expected
测试字符串为:
hello hello hello
<span class="self-reference">Tom</span> I don't know <span class="self-reference">Tom</span> I don't think.
我希望以的身份出现
hello hello hello
@Tom I don't know @Tom I don't think.
我使用这个正则表达式:
comment = comment.replace(/'<span class="self-reference"'>(.*)'<'/span'>/gi,"@$1");
但它输出:
hello hello hello
@Tom</span> I don't know <span class="self-reference">Tom I don't think.
有人能告诉我如何修改它,使其按预期工作吗?
使用非贪婪正则表达式匹配:
comment = comment.replace(/'<span class="self-reference"'>(.*?)'<'/span'>/gi,"@$1");
如果没有我添加的?
,正则表达式(.*)将匹配整个字符串,直到它在字符串中找到的最后一个</span>
。使用非贪婪运算符*?
,一旦找到匹配就停止匹配。
延迟量化
正则表达式中的标准量词是贪婪的,这意味着它们尽可能地匹配。
(来源)
另一种可能的解决方案:
comment = comment.replace(/'<span class="self-reference"'>([^<]+)'<'/span'>/gi,"@$1");
([^<]+)
捕获所有字符,直到找到<
为止
相关文章:
- 要替换的Javascript Regex无法按预期工作
- 为什么这个脚本只工作一次?只替换元素一次,然后再也不替换
- 替换匹配函数给出了未定义的错误,但它与替换一起工作
- 在表单提交将DOM的一部分替换为分部之后,我应该将ajax成功绑定到什么来使我的javascript工作
- 字符串替换不'当通过android webView JavascriptInterface传递字符串时无法工作
- 立即工作并将所有英文数字替换为阿拉伯数字的函数
- 全局替换不起作用,但简单的替换工作正常
- JavaScript中的字符串替换无法正常工作
- 如何使替换代码工作
- 正则表达式替换为多个通配符在 PHP 中工作,而不是在 JavaScript 中
- 替换仅工作一次
- 似乎无法获得示例代码来替换复选框工作
- Javascript替换在控制台中工作,而不是在代码中
- Java脚本:替换未按预期工作的函数
- 简化工作函数以替换特定单词
- 确认不工作时替换上载的文档
- 这个RegEx和替换在JavaScript中究竟是如何工作的
- Jquery换行符替换为br标签不工作
- Javascript替换-不与html字符串工作
- 替换按钮不能工作