将数字和电子邮件地址之间的所有单词替换为小写字母,并用下划线分隔

Replace all word between number and email address in lowercase separating each other with underscore

本文关键字:小写字 分隔 下划线 替换 单词 电子邮件地址 数字 之间      更新时间:2023-09-26
6/9/1985 1234567890 XYZ ABC test@yahoo.co.in 301 DURGA NIWAS 

要将其转换为:

6/9/1985 1234567890 xyz_abc_test@yahoo.co.in 301 DURGA NIWAS 

所以,我想要的是,如果数字(例如1234567890)和电子邮件(例如test@yahoo.co.in)之间有任何字母数字字符,我需要用小写字符替换,而空白将替换为下划线。

您可以使用replace与回调:

var t = '6/9/1985 1234567890 XYZ ABC test@yahoo.co.in 301 DURGA NIWAS';
var r = t.replace (
    /((?:^|'s)'d+'s+)((?:[a-z]'w*'b's+)*)(?=[^'s@]+@)/gim, 
    function($0, $1, $2) {
        return $1 + $2.toLowerCase().replace(/'s/g, "_");
    }
);
//=> "6/9/1985 1234567890 xyz_abc_test@yahoo.co.in 301 DURGA NIWAS"

JSFiddle演示