2014-10-29 35 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))([\.]) 
相關問題