我在這裏有一個問題,我比較新的RegularExpressionValidator。它接受所有字母數字,撇號,連字符,下劃線,空格,&符號,逗號,括號,句號。RegularExpressionValidator TextBox
我給出的答案是:
"^([a-zA-Z0-9 '-_&,()\.])+$"
這似乎善於第一,但它似乎接受amoung其他事情「*」。
有人可以告訴我我在這裏有什麼錯嗎?
我在這裏有一個問題,我比較新的RegularExpressionValidator。它接受所有字母數字,撇號,連字符,下劃線,空格,&符號,逗號,括號,句號。RegularExpressionValidator TextBox
我給出的答案是:
"^([a-zA-Z0-9 '-_&,()\.])+$"
這似乎善於第一,但它似乎接受amoung其他事情「*」。
有人可以告訴我我在這裏有什麼錯嗎?
問題似乎是破折號 - 在角色類中,如果未轉義,而不是在字符類的最後或最開始處,則表示範圍(A-Z
將是您自己的正則表達式的一個很好的例子)。
因此'-_
也被解釋爲一個範圍,並且ASCII 39('
)和ASCII 95(_
)之間的字符是()*+,-./0-9:;<=>[email protected][\]^
。
把短跑末,你應該罰款:
^[a-zA-Z0-9 '_&,().-]+$
因爲我也絆倒了這個事實,即在我最初的答案中使用了一個角色類,所以我挖掘了更多信息。發現下面的教程摘錄在http://www.regular-expressions.info/charclass.html
唯一特殊字符或 元字符一個字符 類是右括號內(]),所述 反斜槓()時,插入符號(^)和 連字符( - )。通常的元字符 是 字符類中的正常字符,並且不需要由反斜槓轉義的 。
用\-
轉義-
應該可以解決您的問題。
你的性格類是不太正確的。這部分:'-_
創建從撇號字符到下劃線字符的範圍。在ASCII表中,*
字符介於兩者之間。你需要或者逃避連字符:
^([a-zA-Z0-9 '\-_&,()\.])+$
或移動到某個地方「小兒科」,如字符類的末尾:
^([a-zA-Z0-9 '_&,()\.-])+$
除了「-_問題涉及由其他人你也有錯誤的地方結束+。
在這個表達式的值捕獲組:
^([a-zA-Z0-9 '-_&,()\.])+$
在快報
是字符串中的最後一個字符。
如果你想捕捉的正則表達式中,整個事情,然後把後+直]像
^([a-zA-Z0-9 '-_&,()\.]+)$
如果你沒有打擾有關提取內捕獲的(價值),然後刪除()
^[a-zA-Z0-9 '-_&,()\.]+$
這真的是你用過的嗎?你錯過了一個關閉的位置)(在開始時有一個開放的,不關閉) – 2010-12-08 20:54:15
輸入它錯了。我現在編輯它,這就是我的。謝謝! – BigJim 2010-12-08 20:56:54
當你舉出一個例子,每個角色都有特殊的含義時,你不應該把這個例子包裝在「」中。我們不清楚你是否在你的真實驗證器中使用它。我假設沒有。 – rtpHarry 2010-12-08 21:25:19