【问题标题】:jquery,javascript change text with @ to linkjquery,javascript用@改变文本链接
【发布时间】:2012-04-20 13:55:23
【问题描述】:

我有这个字符串

@[123:peterwateber] 你好!美好的一天!

我想改成<a href="123">peterwateber</a> <b>hellow!</b>! good day!

我首先要做的是,从给定的字符串中,首先将 @[123:peterwateber] 转换为锚标记,然后将带有 htmlspecialchars 的剩余字符串解析为纯文本。如何做到这一点?

我通过以下代码使用 php 进行了第一个操作:preg_match('#@\[(\w+)\:(\w+)\]#', $hidden_input, $m) 但这次我想在 jquery 或 javascript 中进行...有什么建议吗?我非常需要你们的帮助,解决这个问题已经 3 天了 :(

【问题讨论】:

  • @nathanjosiah 我一直在使用此代码:jsfiddle.net/Hawkee/vq6MH/1 我的方法是在 twitter 或 facebook 上“@提及”某人。一旦消息被保存并从数据库中获取,输出将是一个链接和一个 htmlspecialchars 的解析纯文本,并链接到被提及的人

标签: php javascript jquery regex


【解决方案1】:

javascript 中的正则表达式替换

'@[123:peterwateber] hello! good day!'.replace(
    /@\[(.*):(.*)\](.*)/,
    '<a href="$1">$2</a>$3'
 )

【讨论】:

  • 哇,好伙伴!我爱你伙计!最后!非常感谢你!!!!!!!!!!!!!最后一个问题,解析 html 标签的最佳方法是什么?我的意思是我的方法是这样的stackoverflow.com/questions/10051232/…
【解决方案2】:

你可以这样做:

var text = 'And then @[123:peterwateber] said "Hello world!". After that @[123:nathanjosiah] was talking about a jsfiddle';

text = text.replace(/@\[(\d+)\:(\w+)\]/g, '<a href="$1">$2</a>')
// output: And then <a href="123">peterwateber</a> said "Hello world!". After that <a href="123">nathanjosiah</a> was talking about a jsfiddle

【讨论】:

  • 如果添加一些 htmlspecial 字符会怎样?喜欢这些stackoverflow.com/questions/10051232/…
  • 如果您想将实体解析为实际的 html,您可以使用 $('&lt;div/&gt;').html(text).text()
猜你喜欢
  • 2013-09-09
  • 1970-01-01
  • 2010-10-28
  • 2013-12-13
  • 2013-11-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多