2011-02-22 154 views
9

可能是一個愚蠢的問題,但我似乎無法在谷歌地區找到任何東西。我只需要一種方法來忽略輸入字段的情況。我正在進行城市名稱匹配,但需要「亞特蘭大」和「亞特蘭大」纔有效。我應該如何編輯這個來獲得我需要的驗證愛?jQuery驗證 - 我如何忽略字母大小寫?

jQuery.validator.addMethod("atlanta", function(value) { 
    return value == "Atlanta"; //Need 'atlanta' to work too 
}, '**Recipient must reside in Chicago City Limits**'); 

預先感謝任何及所有:)

回答

8
jQuery.validator.addMethod("atlanta", function(value) { 
    return value.toLowerCase() == "atlanta"; 
}, '**Recipient must reside in Chicago City Limits**'); 
+0

超級快速回答Alex!太棒了,謝謝你的工作完美。一旦有人告訴你它是如何完成的,總是顯而易見:) – Jamie 2011-02-23 00:20:53

+0

@Jamie不用擔心,快樂的編碼! – alex 2011-02-23 00:33:26

6

得到一個不區分大小寫的匹配最簡單的方法是,以這兩個值轉換爲大寫,然後比較(大寫因爲在某些文化/語言的大寫小寫轉換可以改變一個字符!)。

所以要檢查

value.toUpperCase() == "Atlanta".toUpperCase() 
+0

這是一個很好的解決方案。測試它,並認爲我會堅持下去。大多數人將資本化。 – Jamie 2011-02-23 00:50:34

2
return value.toLowerCase() == "atlanta"; 
or use 
return value.toLowerCase() == "Atlanta".toLowerCase(); 
+0

謝謝阿米特!完美的答案。非常感激。 – Jamie 2011-02-23 00:51:19

1
return (value ? value.match(/atlanta/i) : null) != null 

這是不區分大小寫,你可以做很多有趣的東西用正則表達式。請享用。並且請不要做"Cosntant".toLowerCase()那裏有太多錯誤。

+1

我試過這個(我很好奇,想知道每隻貓的皮膚),但我沒有得到任何愛。爲什麼.toLowerCase()不適合去德米特里? – Jamie 2011-02-23 01:11:52

13

你甚至可以創建可重用以執行像

$.validator.addMethod("equalToIgnoreCase", function (value, element, param) { 
     return this.optional(element) || 
      (value.toLowerCase() == $(param).val().toLowerCase()); 
}); 

一個區分大小寫的比較,然後可以使用以下兩種樣品輸入一個更通用的jQuery驗證規則

<input type="text" name="firstname"/> 
<input type="text" name="username"/> 

$("form").validate({ 
    rules: { 
     firstname: { 
      equalToIgnoreCase: "input[name=username]" 
     } 
    }, 
    messages: { 
     firstname: { 
      equalToIgnoreCase: "The 'firstname' must match the 'username'" 
     } 
    }); 
+1

謝謝,這是一個更有用的通用解決方案 – TimoSolo 2012-08-17 12:23:06