鉴于这种:
str = "foo myfoo http://thefoobar.com/food is awesome";
str.replace(magicalRegex, 'bar');
Run Code Online (Sandbox Code Playgroud)
预期的结果是:
"bar myfoo http://thebarbar.com/bard is awesome"
Run Code Online (Sandbox Code Playgroud)
我得到了\b(foo)\b部分,但我无法弄清楚如何foo从 url 中匹配和捕获。出于这些目的,假设 url 始终以http.
有什么帮助吗?
您可以使用此代码(适用于您的示例,但尚未尝试使用更复杂的输入):
str = 'foo myfoo http://thefoobar.com/food is awesome';
str = str.replace(/\bfoo\b/g, 'bar');
while (/http:\/\/[^\s]*?foo/.test(str))
str = str.replace(/(http:\/\/[^\s]*?)?foo/g, function($0, $1) {
return $1 ? $1 + 'bar' : $0;
});
console.log(str);
Run Code Online (Sandbox Code Playgroud)
bar myfoo http://thebarbar.com/bard is awesome
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
800 次 |
| 最近记录: |