gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-28 17:50:41 25 4
gpt4 key购买 nike

我有一个类似 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com