Javascript 跨(某些)标记搜索特定名称并转换为链接

Javascript 跨(某些)标记搜索特定名称并转换为链接,javascript,html,Javascript,Html,我正在为我的网站写一些javascript 我希望能够将(使用javascript)特定的名称转换为链接 例如,如果命名为Benjamin,它将转向: Hello my name is Benjamin 进入 你好,我的名字是 诀窍是,我不知道我需要事先转换哪些名称,我会在ajax响应中收到这些名称。此外,我需要能够按照 <b>B</b>enjam<b>in</b> 本杰明 而不是触摸像这样的东西 B<br />enja<

我正在为我的网站写一些javascript

我希望能够将(使用javascript)特定的名称转换为链接

例如,如果命名为Benjamin,它将转向:

Hello my name is Benjamin
进入

你好,我的名字是 诀窍是,我不知道我需要事先转换哪些名称,我会在ajax响应中收到这些名称。此外,我需要能够按照

<b>B</b>enjam<b>in</b>
本杰明 而不是触摸像这样的东西

B<br />enja<br />min
B
enja
min
我想知道设计能够进行这种解析的东西的最佳实践是什么。如果有现成的解决方案,可能会更好


提前感谢您的帮助

将此应用于您的文本:

.replace(new RegExp("Benjamin".split('').join(".*?"),"g"),'<a href="#">$&</a>')
                  //    ^------------------------ word to be replaced
.replace(新的RegExp(“Benjamin”).split(“”).join(“.*”),“g”),“”)
//^--------------------待替换词

此正则表达式匹配所有这些名称, 这样:

var str1 = "Hello Im Benjamin";
var str2 = "Hello Im <b>Benjamin</b>";
var str3 = "Hello Im <b>Benj<b>amin</b></b>"
var str4 = "Hello Im <br>Benjamin< />"    

console.log(str1.match(/ (?:(?:<b>)?[^><\s]?(?:<\/b>)?)*$/)); //[" Benjamin"] 
console.log(str2.match(/ (?:(?:<b>)?[^><\s]?(?:<\/b>)?)*$/)); //[" <b>Benjamin</b>"] 
console.log(str3.match(/ (?:(?:<b>)?[^><\s]?(?:<\/b>)?)*$/)); //[" <b>Benj<b>amin</b></b>"] 
console.log(str4.match(/ (?:(?:<b>)?[^><\s]?(?:<\/b>)?)*$/)); //null
​
var str1=“你好,我是本杰明”;
var str2=“你好,我是本杰明”;
var str3=“你好,我是本杰明”
var str4=“你好,我是本杰明”

console.log(str1.match(/(?:(?:))?[^>我会坐在这里等你完成这个问题。谢谢:我没有注意到它发布了,新键盘^ ^搜索和替换文本字符串非常简单。你的问题是你需要能够检测跨标记拆分的单词。你能详细说明为什么需要它吗?jQuery在这方面没有很大帮助。很好地使用了磁阻ant quantifier,但这并不能解决我的问题。它还会匹配“ben喜欢一些jammin”之类的东西。@BenjaminGruenbaum您可以改进“
”符号,用允许的符号和/或符号序列替换它。例如,
[^\s]
或诸如此类。是的,我刚刚想到用*替换。*,谢谢!很有趣,但似乎只匹配最后一个单词,而不是“Benjamin”
var str1 = "Hello Im Benjamin";
var str2 = "Hello Im <b>Benjamin</b>";
var str3 = "Hello Im <b>Benj<b>amin</b></b>"
var str4 = "Hello Im <br>Benjamin< />"    

console.log(str1.match(/ (?:(?:<b>)?[^><\s]?(?:<\/b>)?)*$/)); //[" Benjamin"] 
console.log(str2.match(/ (?:(?:<b>)?[^><\s]?(?:<\/b>)?)*$/)); //[" <b>Benjamin</b>"] 
console.log(str3.match(/ (?:(?:<b>)?[^><\s]?(?:<\/b>)?)*$/)); //[" <b>Benj<b>amin</b></b>"] 
console.log(str4.match(/ (?:(?:<b>)?[^><\s]?(?:<\/b>)?)*$/)); //null
​