2012-01-19 42 views
3

我使用jQuery表單驗證插件並使用regex來驗證一個字段。下面是一些代碼:無法在jQuery表單驗證插件中跳過反斜槓和]符號

$.validator.addMethod('regex', 
      function(value, element, regexp) { 
      var check = false; 
      var re = new RegExp(regexp); 
      return this.optional(element) || re.test(value); 
      }, 
    "");  

<input id="school" name="school" type="text" style="float: left" /> 

$("#school").rules("add", { regex: "^[a-zA-Z0-9]*$"}); 

但我想在這個領域使用\]符號。轉義這些字符用反斜槓不`噸的幫助,即使有3個或4反斜線提到here

編輯
感謝。這真的是我的錯。我更新了正則表達式來驗證不同的符號(也反斜槓和])

$("#school").rules("add", { regex: /^[a-zA-Z0-9\',!;\<>\?\$\^:\\\/`\|~&\" @#%\*\{}\(\)\[\]_\+\.\s=-]*$/ }); 

它現在有效。

+3

爲什麼'正則表達式: 「^ [A-ZA-Z0-9] * $」',而不是'正則表達式:/^[A-ZA-Z0-9] * $ /'? –

回答

0

這一個應該工作:前

'^[a-zA-Z0-9\\]\\\\]*$' 

兩個側隙]給出最終的字符串一個反斜槓,這反斜槓]號。 四個反斜槓在最後一個字符串中產生兩個反斜槓(兩個反斜槓),並且這兩個傳遞給RegExp構造函數的反斜槓給出一個反斜槓。

下面是簡單的演示:http://jsfiddle.net/CsQn7/1/