请帮忙。 我需要一个正则表达式(在javascript中使用)来替换“。”在包含Unicode字符的文本中使用“#”。 更换仅在“。”时进行。出现在文本之间,但不出现在数字之间。
输入:“ΦΨ.ABC.DEF.123.456”
期望的输出:“ΦΨ#ABC#DEF#123.456”
有什么建议吗?
答案 0 :(得分:6)
您可以在正则表达式中使用捕获组,并使用反向引用来获取所需的结果:
正则表达式说明:
var re = /(\D)\.(\D)/g;
var str = 'ΦΨ. ABC. DEF. 123.456';
var subst = '$1#$2';
result = str.replace(re, subst);
alert(result);
- 非数字字符\D
- 字面点将非数字字符捕获到组中,然后在\.
和$1
反向引用的帮助下插回。
答案 1 :(得分:0)
试试这个:
var str = "ΦΨ. ABC. DEF. 123.456";
str.replace(/[^\d.]+\.[^\d]/g, function (m) {
return m.replace('.', '#')
});