.replacement()正则表达式问题
.replace() regex question
我可以有一个字符串,例如:
sometext<a title="Wink"><img src="http:''www.seemstatic.com'images'transparent.png" class="emoWink"></a>somemore text<a title="Wink"><img src="http:''www.seemstatic.com'images'transparent.png" class="emoWink"></a>endof text...
我有下面的Javascript,它与上面的字符串匹配,并用:)
:替换它
subject = subject.replace(/<a title="Smile"><img.*<'/a>/, ':)');
问题是它不贪婪。。。它匹配两种情况,而不是仅匹配一种情况。
如何更改此代码以仅匹配第一次出现的代码?
您需要通过添加问号使其不贪婪吗?
// Greedy quantifiers
String match = find("A.*c", "AbcAbc"); // AbcAbc
match = find("A.+", "AbcAbc"); // AbcAbc
// Nongreedy quantifiers
match = find("A.*?c", "AbcAbc"); // Abc
match = find("A.+?", "AbcAbc"); // Abc
所以在你的情况下,类似的东西
subject = subject.replace(/<a title="Smile"><img.*?<'/a>/, ':)');
不要使用regex执行此操作。您已经在使用jQuery,因此可以使用jQuery的DOM遍历方法:
yourString = $('<span>' + yourString + '</span>')
.find('a[title="Wink"]')
.replaceWith(';)')
.end()
.html();
从技术上讲,这不是一个jquery问题,而是一个javascript问题,因为这里的替换是在String对象上。
你可以贪婪地用subject.replace(/search/g, 'replacement');
替换
g修饰符使其替换所有实例。
不过,使用css选择器,使用jQuery方法可能会更好地解决您的问题:例如$('.a[title=Smile]').replaceWith(';)')
相关文章:
- 使用正则表达式评估电子邮件地址时出现性能问题
- 正则表达式匹配模式或匹配其他所有内容 - 匹配优先级问题
- 这个正则表达式的日期/时间有什么问题
- 为密码验证实现正则表达式时出现问题
- JavaScript 正则表达式匹配问题
- 我的电子邮件正则表达式有什么问题
- Javascript中的正则表达式问题转义特殊字符
- JavaScript正则表达式代码匹配字符和数字的问题
- url的正则表达式有问题
- 这个正则表达式有什么问题
- 为此模式编写正则表达式时遇到问题
- AngularJS ng-pattern的正则表达式问题
- 在这种情况下,正则表达式中的“[”是什么( 2 个问题)
- JS正则表达式结果表达式赋值问题
- 正则表达式替换问题
- 匹配 JavaScript 中的字符串时的正则表达式问题
- 奇怪的JavaScript正则表达式替换问题
- JavaScript正则表达式(缺少“/”),我该如何解决这个问题
- 我的验证码有什么问题?(正则表达式很好)
- JavaScript 我非常简单的正则表达式有什么问题