2015-08-24 93 views
3

我寫了這個正則表達式來刪除任何不是數字的東西。允許在正則表達式中的數字,包括負數

 var dataTest = data.replace(/[^0-9]/gi, ''); 

它把 「abc123xyz」 到 「123」

但是現在我想也包括負數: -

 var dataTest = data.replace(/[^-0-9]/gi, ''); 

但它讓 - 中之間也。 它把「ABC123-XYZ」,以「123-」 我希望它轉換爲「123」

然而,如果用戶給出了「-123abc」,它應更改爲「-123」。

我在JavaScript中的焦點事件上調用此代碼。我也會接受jquery的解決方案。

回答

6

一種選擇是捕捉號碼,並移除一切:

input = "abc-123def" 
 

 
clean = input.replace(/.*?(-?\d+).*/, "$1") 
 

 
document.write(clean)

,或者更有效,與match

clean = (input.match(/-?\d+/) || [])[0] 
相關問題