字符串形式的正则表达式.替换为回调函数
regular expression in string.replace with a callback function
function helpLinkConvert(str, p1, offset, s) {
return "<a href='"look.php?word="
+encodeURIComponent(p1)+"'">"+p1+"</a>";
}
var message = "(look: this) is a (look: stackoverflow) question";
message = message .replace(/'(look: (.{1,80})')/, helpLinkConvert);
这就是我想要做的,
:
(look: this)是一个(look: stackoverflow)问题。
:
这是一个stackoverflow问题
当只有一个匹配的字符串时,它工作,但在其他情况下,它不能正常工作,
我该怎么做呢?谢谢。
您需要添加全局g
修饰符和非贪婪匹配,以便正则表达式找到所有匹配:
/'(look: (.{1,80}?)')/g
在你的代码中:
function helpLinkConvert(str, p1, offset, s) {
return "<a href='"look.php?word="+encodeURIComponent(p1)+"'">"+p1+"</a>";
}
var message = "(look: this) is a (look: stackoverflow) question";
message = message.replace(/'(look: (.{1,80}?)')/g, helpLinkConvert);
输出:
"<a href="look.php?word=this">this</a> is a <a href="look.php?word=stackoverflow">stackoverflow</a> question"
使用g
标志:
message .replace(/'(look: (.{1,80})')/g, helpLinkConvert);
g
(代表"global")将匹配该字符串中出现的所有模式,而不仅仅是第一个。
相关文章:
- JavaScript回调函数
- 如何在回调函数中执行流
- 回调函数中传递参数的困难(Google Map API Markers)
- 如何正确地将参数传递给RequireJS回调函数
- 回调函数在python代码中离线
- 从AJAX回调函数中分离数据
- 赋值后的回调函数
- 如何在javascript回调函数中返回多个变量
- 函数表达式,返回回调函数
- 等待回调函数执行
- JavaScript回调函数和Google Feed API
- 如何从ajax成功回调函数中读取javascript变量
- 正在保存JavaScript内部回调函数中的值
- 有没有什么方法可以停止Jquery中的animate(也可以停止完整的回调函数)
- 如何在javascript中添加带有回调函数的按钮点击事件作为window.conf
- 在Golang回调函数中启用CORS
- 在初始函数完成之前调用回调函数
- jQuery Mobile:如何在$.Mobile.changePage之前运行回调函数
- 即使使用回调函数也无法返回值
- 为什么prototypjs观察到回调函数有绑定