用javascript中的下划线字符替换所有出现的点字符

时间:2014-10-07 12:23:05

标签: javascript regex pattern-matching

在JavaScript中,我需要用下划线字符(_)替换所有出现的点字符(。),如果有的话除了最后一个。

此表达式替换所有出现的点字符(。),包括带有下划线字符(_)的最后一个字符,但是我试图找出如何更改它以使其仅留下最后一个(。)字符

str.replace(/\./g, '_');

谢谢!

史蒂夫

2 个答案:

答案 0 :(得分:5)

look aheads的乐趣。

"12.34.56.78".replace(/\.(?=[^.]*\.)/g,"_")

答案 1 :(得分:1)

使用negative lookahead

> "12.34.56.78".replace(/\.(?![^.]*$)/g,"_")
'12_34_56.78'
> "12.34.56.78.".replace(/\.(?![^.]*$)/g,"_")
'12_34_56_78.'