用正則表達式玩弄從字符串正則表達式把所有號碼從JavaScript中的字符串和PHP
刪除所有數字,我想出了這個:
/([^0-9])$/
但它只能如果字符串看起來像這樣,例如Name123但如果你輸入Name123Name比它不工作?
不明白爲什麼?
任何想法?
最好的問候, 伊利亞
用正則表達式玩弄從字符串正則表達式把所有號碼從JavaScript中的字符串和PHP
刪除所有數字,我想出了這個:
/([^0-9])$/
但它只能如果字符串看起來像這樣,例如Name123但如果你輸入Name123Name比它不工作?
不明白爲什麼?
任何想法?
最好的問候, 伊利亞
你的正則表達式查找一個字符不是[0-9]
在字符串的結束。
要檢查是否有字符串中的數字的任何地方,卸下主播:
/[0-9]/
要檢查所有的字符不是數字,加上字符串錨的開始太:
/^[^0-9]+$/
這種方法被稱爲黑名單 - 你想要允許的不要的字符列表。請注意,最好創建一個白名單 - 您要做的想要允許的列表字符。
甜!工作正常!非常感謝Mark! ;) – 2012-08-02 15:26:28
最後刪除$
,因爲它匹配字符串的末尾。根據您使用的語言,您也可以使用\d
來匹配數字而不是[0-9]
。
所以在你的例子/[0-9]$/
匹配Name123,因爲123出現在字符串的末尾,因此匹配$
錨。但在另一個示例中,Name123Name,$
錨點不匹配,因爲數字位於字符串的中間。
有趣,但我試過了,它不起作用。下面是我如何應用它:var a = city.val(); var filter = /([^ \ d])/; if(filter.test(a)){do something} – 2012-08-02 14:47:15
啊,javascript ...我更像是一個perl人。不適合詢問javascript的人 – 2012-08-02 14:51:01
這是幹什麼用的?幾乎肯定有更好的方法來做你想做的事情,但很難說不知道你正在使用哪種語言。 – 2012-08-02 14:43:25
我使用JavaScript和jQuery作爲用戶端和我用PHP做的相同的事情。以下是我如何將它應用於用戶端:var a = city.val(); var filter = /([^ \ d])/; if(filter.test(a)){do something} – 2012-08-02 15:00:08
不是你的邏輯倒退了嗎?您正在測試它是否至少包含一個非數字。但它仍然可以包含數字。什麼是「做某事」?是應該產生錯誤信息的代碼,還是應該在沒有錯誤時運行的代碼? – 2012-08-02 15:19:41