我正在为我的网站写一些javascript。
我希望能够将(使用javascript)特定名称转换为链接。
例如,鉴于本杰明的名字,它将转向:
Hello my name is Benjamin
到
Hello my name is <a href='something'>Benjamin</a>
诀窍是,我不知道我需要提前转换的名称,我在ajax响应中收到这些名称。此外,我需要能够处理
的内容<b>B</b>enjam<b>in</b>
虽然没有触及像
这样的东西B<br />enja<br />min
我想知道设计能够进行这种解析的东西的最佳实践。如果有一个现成的解决方案可能会更好。
提前感谢您的帮助
答案 0 :(得分:1)
将此应用于您的文字:
.replace(new RegExp("Benjamin".split('').join(".*?"),"g"),'<a href="#">$&</a>')
// ^------------------------ word to be replaced
答案 1 :(得分:0)
此正则表达式匹配所有这些名称, 这样:
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