2015-02-12 29 views
-2

我需要使用正則表達式驗證輸入字段,但輸入字段不應出現在這些字符;*&%^=""正則表達式拒絕特定字符; *&%^ =「」

正如我在Regex是新所以我寫了

正則表達式是\A.+[a-z0-9A-Z]+\Z,但無法驗證

由於@Avinash拉吉已經解決的問題,因爲這是我^[^;*&%^="]+$

工作

感謝@Avinash拉吉

+0

您應該添加喜歡的是一個有效的地址,協議和一些樣品的一些信息(即通或錯過測試)爲您(和同爲未來的危機)問題。 – NeronLeVelu 2015-02-12 06:54:58

+0

我必須看到的東西。 :-)(這個綠黨是它的所在地。) – 2015-02-12 09:17:10

回答

4

使用否定的字符類。

^[^;*&%^="]+$ 

這匹配任何字符一次或多次,但不匹配否定字符類中存在的任何字符。

  • ^聲稱我們在一條線的起點。
  • [^...]取反的字符類,它匹配任何字符,但不匹配該特定字符類中存在的字符。
  • + char類會重複一次或多次char類。
  • $斷言我們在行尾。
+2

'^'沒有斷言我們是字符串的開始,它斷言我們是在*行的開頭*;同樣,'$'表示*行*的結尾,而不是字符串的結尾。你希望'\ A'和'\ z'分別用於整個字符串的開始和結束。 – 2015-02-12 06:33:12

+0

是的,未能在上面添加字符串'line'。 – 2015-02-12 06:35:38

+1

作弊!您替換了幾個多字節字符。我永遠不會那樣做。 – 2015-02-12 09:07:18

1

另一種方式:

str = "Why won't this *!&!!* code run??!" 
str.tr('*&%^"=', '') == str #=> false 

str = "Now it works, but I have no idea why!!" 
str.tr('*&%^"=', '') == str #=> true