2014-10-29 55 views
-2

有没有办法在正则表达式中找到一个字符串中的单个点?例如,用户输入的是:正则表达式来找到一个字符串中的单个点

7. + 6.5 

有没有一种方法来检测,有7个是在字符串中不必要的点,并删除它,而没有接触到6.5点?

此外,有没有一种方法来检测所述相同的运营商因此以下将被视为无效的多个实例:

7 ++++ 5 --- 6 

任何暗示将不胜感激。

谢谢。

+1

以何种方式是点*不必要*? 'parseInt(“7。”,10)=== 7'和'console.log(7。+ 3)=== 10' – CodingIntrigue 2014-10-29 08:15:11

回答

0

为了检测操作者的多个occurence正则表达式可以是

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

repalce字符串以$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

EDIT被看到

验证str荷兰国际集团包含单人操作,

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

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

+0

谢谢!但是,如果操作符之间有空格,则不起作用,如下所示:var str ='7 ++ ++ 5 - - 6 + 5'; – cycero 2014-10-29 09:01:38

+0

如果您只想验证字符串,可以使用'^ \ d +(\ s * [+ - \/*] \ s * \ d +)+ $'。 http://regex101.com/r/lN3wH5/2 – nu11p01n73R 2014-10-29 09:18:42

0

要检查只有一个点用这个:

(?!(\.\d))([\.]) 
相关问题