JavaScript 正则表达式 : Replace spaced substring from the string

标签 javascript jquery regex

我有一个类似 Hello @William Turner. how are you? 的字符串并想替换术语 @William Turner.通过<a href="www.williamturner.com">@William Turner.</a>

因此,结果字符串将是 Hello <a href="www.williamturner.com">@William Turner.</a> how are you?

我尝试使用下面的代码来做到这一点:

var text  = "Hello @William Turner. how are you?";
var username = "William Turner.";
var user_profile_html = "<a href="www.williamturner.com">@William Turner.</a>";

var regex = new RegExp("\\@" + username + "\\b", "g");
text = text.replace(regex, user_profile_html);

username 时工作正常没有像 William, John 这样的空间等等

请分享您的知识,我该如何实现它?

--------------------编辑--------------------

我在上面的代码中提到的正则表达式工作正常,正如 @hallleron 发布的答案。 但是,我忘记提到要替换的术语有特殊字符,例如 .所以就变成了William Truner.

我使用并由 @hallleron 提到的正则表达式对于没有特殊字符的术语工作得很好。

正如 @DimitrisDamilos 在评论中提到的,我正在寻找 regexr.com也是如此。

最佳答案

实际上您的代码没问题,但 user_profile_html 变量的字符串内也有 ",这是错误的,请替换为 '

这是一个具有两种方法的工作 fiddle :

// METHOD 1:

var string = "Hello @William Turner how are you?"
var username = "William Turner";

var result = string.replace('@' + username, '<a href="www.williamturner.com">@' + username + '</a>');

console.log(result);


// METHOD 2:

var text  = "Hello @William Turner how are you?";
var username = "William Turner";
var user_profile_html = '<a href="www.williamturner.com">@William Turner</a>';

var regex = new RegExp("\\@" + username + "\\b", "g");
text = text.replace(regex, user_profile_html);

console.log(text);

关于JavaScript 正则表达式 : Replace spaced substring from the string,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45591222/

相关文章:

javascript - 在 Javascript 中排序列表

javascript - match 函数返回一个包含两个元素而不是一个元素的数组

javascript - 在play框架中从javascript调用java函数

javascript - .data ('kendoComboBox' ) 从事件处理程序调用时返回未定义

Java正则表达式与句点部分匹配

javascript - Php - 将 MySQL 结果回显为 geojson

javascript - 使用 JavaScript 和警报禁用 HTML 链接

javascript - 搜索过滤器不适用于 IE 8

python - 如何使用正则表达式 Python 在文件中查找非 ASCII 字符

c# - 如何通过 Key 从 Url 中有效地删除查询字符串?