Jquery替换以#开头的所有字符串并添加链接

Jquery替换以#开头的所有字符串并添加链接,jquery,str-replace,Jquery,Str Replace,我在留言板上有一个大的块或文本,其中包含以#开头的字符串。我可以使用jquery将它们替换为包含字符串的链接吗 例如,更改: <div id="mydiv">This is my #block of text with #multiple hash strings</div> 这是我的#文本块,包含#多个哈希字符串 致: 这是我的一组带有散列字符串的文本 提前谢谢 可以使用以下代码替换字符串: var string = "#has etc #has "; strin

我在留言板上有一个大的块或文本,其中包含以#开头的字符串。我可以使用jquery将它们替换为包含字符串的链接吗

例如,更改:

<div id="mydiv">This is my #block of text with #multiple hash strings</div>
这是我的#文本块,包含#多个哈希字符串
致:

这是我的一组带有散列字符串的文本

提前谢谢

可以使用以下代码替换字符串:

var string = "#has etc #has ";
string = string.replace(/#(\S+)/g, '<a href="newpage.asp?$1">#$1</a>');
var string=“#has etc#has”;
字符串=字符串。替换(/#(\S+)/g';
这将完成以下工作:

$('*:contains("#")').each(function(){
 if($(this).children().length < 1) 
      $(this).html( 
           $(this).text().replace(
                /#(.*)#/
                ,'<a href=newpage.asp?'+$(this).text()+'>'+$(this).text()+'</a>'
           )  
       ) 
});
$('*:包含(“#”)。每个(函数(){
if($(this).children().length<1)
$(this.html(
$(this).text().replace(
/#(.*)#/
,''
)  
) 
});

欢迎来到StackOverflow!在发布解决方案之前(可能是在上发布)测试解决方案始终是一个好主意,以确保它们实际按预期工作。在使用
text()
html()
替换内容时,您应该对此负责。如果html包含
脚本
,则替换后的结果将是
。谢谢@RobW,html()是否也会产生脚本效果?刚试过,看起来还可以@Bobney您的代码根本不工作,因为div元素包含一个子元素。即使您只使用
.html()
,代码也很容易出错:
颜色将损坏。@RobW啊,您没有错。我会去玩的。谢谢你让我走上了正确的道路。
$('*:contains("#")').each(function(){
 if($(this).children().length < 1) 
      $(this).html( 
           $(this).text().replace(
                /#(.*)#/
                ,'<a href=newpage.asp?'+$(this).text()+'>'+$(this).text()+'</a>'
           )  
       ) 
});