正则表达式在字符串中找到一个点

时间:2014-10-29 08:12:34

标签: javascript regex

有没有办法在Regex的字符串中找到一个站点?例如,用户输入为:

7. + 6.5

有没有办法检测到字符串中有一个不必要的点7,并在不触及6.5中的点时将其删除?

此外,是否有办法检测同一运营商的多次出现,以便将以下内容视为无效:

7 ++++ 5 --- 6

任何提示都将受到高度赞赏。

感谢。

2 个答案:

答案 0 :(得分:0)

要检测运算符的多次出现,正则表达式可以

([^\d\s])\1+

使用$1

重新生成字符串

请参阅链接http://regex101.com/r/lN3wH5/1

var re = /([^\d\s])\1+/gm; 
var str = '7 ++++ 5 --- 6 + 5';
var subst = '$1'; 

var result = str.replace(re, subst);

将产生输出

7 + 5 - 5 +5

可以使用否定的预测.来匹配单个(?! )

使用正则表达式

\.(?!\d)

匹配的部分可以在http://regex101.com/r/tC7rO6/1

看到

修改

验证字符串是否包含单个运算符

正则表达式:^\d+(\s*[+-\/*%]\s*\d+)+$

测试:http://regex101.com/r/lN3wH5/3

答案 1 :(得分:0)

要仅检查单点,请使用此选项:

(?!(\.\d))([\.])