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

在javascript中,用下划线字符替换所有出现的点字符,javascript,regex,pattern-matching,Javascript,Regex,Pattern Matching,在JavaScript中,我需要替换所有出现的点字符。带有下划线字符uu(如果有),最后一个除外 此表达式将替换点字符的所有匹配项。包括最后一个带下划线的字符u,但我正试图找出如何更改它,使其保留最后一个字符。只有性格 str.replace(/\./g, '_'); 谢谢 史蒂夫和我一起玩的乐趣 和我一起玩的乐趣 使用 使用 我测试过了,你的表情非常完美——我能强迫你问一下它是如何工作的吗?我是说,我认为这部分?=[^.]*\。是创建异常的原因-但我想了解语法,以便了解它的工作原理。非常感谢

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

此表达式将替换点字符的所有匹配项。包括最后一个带下划线的字符u,但我正试图找出如何更改它,使其保留最后一个字符。只有性格

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

史蒂夫

和我一起玩的乐趣

和我一起玩的乐趣

使用

使用



我测试过了,你的表情非常完美——我能强迫你问一下它是如何工作的吗?我是说,我认为这部分?=[^.]*\。是创建异常的原因-但我想了解语法,以便了解它的工作原理。非常感谢!!阅读此文:基本思想是前瞻性匹配,并将其包含在最终结果中。非常感谢-我进行了测试,结果有效,如果最后一个点字符后面有字符,Avinash下面的答案无效,但您的解决方案有效。非常感谢,谢谢大家!这非常有效,但我认为12.34.56.78.replace/\.?=.*\.[^.]*$/g更正确。是的,这也有效,就像espascarello的解决方案一样。我查看了espascarello提到的链接,以解释它是如何工作的,但我是一个悲伤的案例,不明白-如果你有一分钟的时间,可以解释一下,其中包含的内容是如何创建异常的,那么最后一个。让我一个人呆着,那太好了-谢谢!我测试过了,你的表情非常完美——我能强迫你问一下它是如何工作的吗?我是说,我认为这部分?=[^.]*\。是创建异常的原因-但我想了解语法,以便了解它的工作原理。非常感谢!!阅读此文:基本思想是前瞻性匹配,并将其包含在最终结果中。非常感谢-我进行了测试,结果有效,如果最后一个点字符后面有字符,Avinash下面的答案无效,但您的解决方案有效。非常感谢,谢谢大家!这非常有效,但我认为12.34.56.78.replace/\.?=.*\.[^.]*$/g更正确。是的,这也有效,就像espascarello的解决方案一样。我查看了espascarello提到的链接,以解释它是如何工作的,但我是一个悲伤的案例,不明白-如果你有一分钟的时间,可以解释一下,其中包含的内容是如何创建异常的,那么最后一个。让我一个人呆着,那太好了-谢谢!你对最后一个点的定义有点奇怪。就像我使用的文本模式,你复制并添加了。到最后。它应该匹配任何位置,而不仅仅是最后一个字符。如果它是点,则您的字符是字符串的最后一个字符,但它应该是最后一个点字符,即使它不在字符串的末尾string@AvinashRaj:谢谢你,+1!谢谢你睁开我的眼睛:-你对最后一个点的定义有点奇怪。就像你复制并添加的文本模式一样。到最后。它应该匹配任何位置,而不仅仅是最后一个字符。如果它是点,则您的字符是字符串的最后一个字符,但它应该是最后一个点字符,即使它不在字符串的末尾string@AvinashRaj:谢谢你,+1!谢谢你睁开我的眼睛:-
"12.34.56.78".replace(/\.(?=[^.]*\.)/g,"_")
> "12.34.56.78".replace(/\.(?![^.]*$)/g,"_")
'12_34_56.78'
> "12.34.56.78.".replace(/\.(?![^.]*$)/g,"_")
'12_34_56_78.'