我们可以编写一个正则表达式来接受所有重复的 '.'那是字符串中的小数点?
Posted
技术标签:
【中文标题】我们可以编写一个正则表达式来接受所有重复的 \'.\'那是字符串中的小数点?【英文标题】:Can we write a regex to accept all the duplicate '.' that is decimal points in a string?我们可以编写一个正则表达式来接受所有重复的 '.'那是字符串中的小数点? 【发布时间】:2021-11-25 10:01:04 【问题描述】:我想接受所有小数点,除了第一个小数点之外的字符串中的小数点。 例如- 1.2 应该被拒绝,但在 1..2 或 1.2.3 中,第一个小数之后的所有小数都应该被正则表达式接受
【问题讨论】:
你的最终目标是什么? 其实我是在JS中使用.replace()函数来替换正则表达式接受的字符作为.replace()的第一个参数。所以我想接受正则表达式中所有重复的小数,以便在 str.replace('regex', '') 的帮助下将它们替换为空字符串(""),以便在使用替换功能后, 1..2 或 1..2 变为 1.2 和 1.2.3 或 1..2.3.4 变为 1.234 【参考方案1】:我们可以使用回调函数尝试以下正则表达式方法:
var input = "1..2.3.4";
var output = input.replace(/^(.*?\.)(.*)$/g, (x, y, z) => y + z.replace(/\./g, ""));
console.log(output);
这里的逻辑是将输入字符串的第一部分匹配到(包括)第一个捕获组中的第一个点。然后,在第二个捕获组中,我们匹配字符串的其余部分,并从该组件中删除所有点。
【讨论】:
此代码的输出为 1.2.3.4,但预期输出为 1.234。基本上,除了第一个小数,所有小数都应该替换为空字符串 不,这段代码的输出是1.234
。再次运行演示。
是的,现在正确了,谢谢以上是关于我们可以编写一个正则表达式来接受所有重复的 '.'那是字符串中的小数点?的主要内容,如果未能解决你的问题,请参考以下文章