Javascript 替换正则表达式

Javascript 替换正则表达式,javascript,replace,match,Javascript,Replace,Match,我有一个字符串,比如hi Jim check this@inyekwallast:wid=834982948738924797。我想用hi Jim替换这个检查一下 分别使用JavaScript 我知道应该使用替换,但我不知道如何使用它 有什么想法或建议吗?试试这个 var input_str = 'hi Jim check this @inyekwallast:wid=834982948738924797'; var output_str = input_str.replace(/(@\w+

我有一个字符串,比如
hi Jim check this@inyekwallast:wid=834982948738924797
。我想用
hi Jim替换这个检查一下
分别使用JavaScript

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

试试这个

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);
var输入\'u str='hi Jim check this@inyekwallast:wid=834982948738924797';
变量输出=输入替换(/(@\w+):(wid=\d+)/g';
console.log(输出_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>

document.body.innerHTML=do_链接(document.body.innerHTML);
功能do_链接(正文){
返回正文。替换(/(@\w+):(wid=\d+)/g';
}
试试这个

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);
var输入\'u str='hi Jim check this@inyekwallast:wid=834982948738924797';
变量输出=输入替换(/(@\w+):(wid=\d+)/g';
console.log(输出_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>

document.body.innerHTML=do_链接(document.body.innerHTML);
功能do_链接(正文){
返回正文。替换(/(@\w+):(wid=\d+)/g';
}

我不知道我是否完全理解您的问题,但您将通过以下正则表达式获得所需的部分:

(@\w*)
将匹配“@something”和

(?!:wid=)\d{18} or (?!:wid=)\d*
将匹配wid(第一个,如果正好有18个数字,第二个,如果您不知道数字的数量)。我想你可以自己解决剩下的问题。否则,请不要介意询问


编辑:按照@Star_Man的答案回答,我不知道我是否完全理解你的问题,但你可以通过这些正则表达式获得所需的部分:

(@\w*)
将匹配“@something”和

(?!:wid=)\d{18} or (?!:wid=)\d*
将匹配wid(第一个,如果正好有18个数字,第二个,如果您不知道数字的数量)。我想你可以自己解决剩下的问题。否则,请不要介意询问


编辑:使用@Star\u Man的答案

data=
是无效的HTML5属性。你的意思是:
data-wid=
?在这里找到一些灵感,自己先试试。是的,你说正确的
data=
是无效的HTML5属性。你的意思是:
datawid=
?在这里找到一些灵感,先自己尝试一下。是的,你说对了,是的,这是真的,但我有这样的函数do_links(body){body.replace(/\@[a-za-z0-9]/g,)}我应该用这个你能帮我吗?一切都很好只是输出在“”之间应用,我不想在“”之间应用我的输出。对此有什么想法吗?是的,这是真的,但我有这样的函数do_links(body){body.replace(/\@[a-z a-z 0-9\]/g,)我应该用这个你能帮我吗?一切都很好,只是输出在“”之间应用,我不想在“”之间应用我的输出。对此有什么想法吗?????