【问题标题】:Replacing a specific character with a html tag in jQuery在jQuery中用html标签替换特定字符
【发布时间】:2016-02-10 04:46:19
【问题描述】:

我正在尝试通过将特定单词包装在 <strong></strong> 标记中来设置字符串中的特定单词的样式。问题是这个词会一直变化,所以我想让他们把特定的词包在括号中(在输入文本字段中),然后用开始和结束强标签替换开始和结束括号。

例如:

"Who said (romance) was dead?"

会变成

"Who said <strong>romance</strong> was dead?"

最好的方法是什么?

【问题讨论】:

  • 正则表达式.?
  • 欢迎来到 Stack Overflow!请参阅How to Askminimal reproducible example。添加您的尝试。
  • 我是这么想的,但我对正则表达式了解不多。一个例子将不胜感激。

标签: javascript html regex


【解决方案1】:

您可以将 replace() 与捕获组正则表达式一起使用

console.log(
  "Who said (romance) was dead?".replace(/\(([^)]+)\)/g, '<strong>$1</strong>')
);
/\(([^)]+)\)/g

上面的正则表达式将匹配()之间的所有字符串,并用&lt;strong&gt;标签替换捕获的组数据。

Regex explanation here

【讨论】:

  • 谢谢,这帮助很大。我最终使用:var slideHeading = $(".slide-heading").text(); $(".slide-heading").html(slideHeading.replace(/\(([^)]+)\)/g, '&lt;strong&gt;$1&lt;/strong&gt;')); 成功了!
【解决方案2】:

如果您可以接受没有正则表达式的答案,请尝试 :)

var str = "Who said (romance) was dead?";

var wordToBeStronged = "romance";

str = str.split( "(" + wordToBeStronged + ")" ).join( "<strong>" + wordToBeStronged + "</strong>" );

console.log( str );

【讨论】:

猜你喜欢
  • 2016-07-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-03-17
  • 2014-05-08
  • 1970-01-01
  • 2011-09-07
相关资源
最近更新 更多