替换正则表达式

时间:2018-10-08 07:23:18

标签: javascript replace match

我有一个字符串,例如hi Jim check this @inyekwallast:wid=834982948738924797。我想使用JavaScript分别将其替换为hi Jim check this <a href="" data="wid=834982948738924797"> @inyekwallast </a>

我知道应该使用replace,但是我不知道如何使用 有什么想法或建议吗?

2 个答案:

答案 0 :(得分:2)

尝试一下。

var input_str = 'hi Jim  check this  @inyekwallast:wid=834982948738924797';
var output_str = input_str.replace(/(@\w+):(wid=\d+)/g,  '<a href="" data="$2"> $1 </a>');
console.log(output_str);

您可以在控制台中看到

//hi Jim  check this  <a href="" data="wid=834982948738924797"> @inyekwallast </a>

如果要替换整个文档,则可以使用以下代码...

 <script>
    document.body.innerHTML = do_links(document.body.innerHTML);
    function do_links(body) {
        return body.replace(/(@\w+):(wid=\d+)/g,  '<a href="" data="$2"> $1 </a>');
    }
 </script>

答案 1 :(得分:1)

我不知道我是否完全理解您的问题,但是您可以通过RegEx获得所需的部分:

(@\w*)

将匹配'@something'和

(?!:wid=)\d{18} or (?!:wid=)\d*

将匹配宽度(第一个,如果恰好有18位数字,第二个,如果您不知道数字的数量)。我想您可以自己解决其余的问题。否则,别介意。

编辑:使用@Star_Man的答案

相关问题