正则表达式在任何字母串旁边找到任何数字串

时间:2014-03-24 02:38:32

标签: javascript regex

我正在尝试使用正则表达式在任意数量的字母旁边找到任意数量的数字并插入" *"它们之间。所以,例如代码会变成......

2s
z10
30000000000kh

... INTO ...

2*s
z*10
30000000000*kh

我尝试过使用:

string.replace(/(?:[0-9]+)(?=(?:[a-z.]+))/g)
   .replace(/(?:[a-z]+)(?=(?:[0-9]+))/g);

......无济于事。有什么建议吗?

2 个答案:

答案 0 :(得分:3)

使用此模式([a-z])(?=\d)|(\d)(?=[a-z])
并替换为$1$2*
Demo

答案 1 :(得分:1)

您想要找到数字和非数字之间的转换,反之亦然,然后在匹配之间插入一个星号:

str.replace(/\d[a-z]|[a-z]\d/i, function($0) {
    return $0[0] + '*' + $0[1]; 
});