找到确切的字符串并替换或加入它们

时间:2014-08-25 11:55:00

标签: javascript regex

var theText='Ohhhh #ohhh #oh #ohh #ohhhh ohhh oh'

我想要实现的是每个带有井号/标签的“哦”将被链接替换。

我想要实现的目标:

"Ohhh <a href='/'>#ohhh</a>
      <a href='/'>#oh</a>
      <a href='/'>#ohh</a>
      <a href='/'>#ohhhh</a>
      ohhh oh

2 个答案:

答案 0 :(得分:1)

尝试下面的代码段

var s = "Ohhhh #ohhh #oh #ohh #ohhhh ohhh oh";
var p = /(#[^\s]+)/g;
s.replace(p, "<a href='/'>$1</a>");

输出:

"Ohhhh <a href='/'>#ohhh</a> <a href='/'>#oh</a> <a href='/'>#ohh</a> <a href='/'>#ohhhh</a> ohhh oh"

Demo

答案 1 :(得分:0)

我使用map本机函数获得了一些东西,如bellow。

var theText='Ohhhh #ohhh #oh #ohh #ohhhh ohhh oh';
var words = theText.split(' ');
var newWords = words.map(function(part){
        if(part.indexOf('#')==0)
            return "<a href='/'>"+part+"</a>\n";  //\n is because you want line breaks in those words
        else
            return part+" ";
});

var newText = newWords.join('');
console.log(newText);

DEMO

如果您想在HTML中使用它,可以在<br>处使用\n

注意: - map不能在IE8上工作,你必须使用一些库。