[英]Regex to disallow all Special Chars but allow German Umlauts in jQuery?
我想允許所有字母數字字符並禁止RegEx中的所有特殊字符。 但是我想允許德國的變形金剛,但因為它們也是特殊的Chars,我不能輸入它們。我使用這個腳本:
if(website_media_description.match(/[^a-zA-Z0-9]/g)) {
alert('Found Special Char');
}
因此,當äöüÄÖÜß在變量中時,我也會收到警報。 我也試過這個腳本:
if(website_media_description.match(/[^a-zA-Z0-9äöüÄÖÜß]/g)) {
alert('Found Special Char');
}
但這也行不通。 有人可以告訴我我做錯了什么嗎?
謝謝 :)
我的測試字符串來自輸入字段,我寫了“description test1öäüÖÄÜß”
您的問題來自於您未考慮白名單中所需的每個字符的事實。
讓我們考慮一下您的測試字符串實際匹配的內容
"description test 1 öäüÖÄÜß".match(/[^a-zA-Z0-9äöüÄÖÜß]/g);
// [" ", " ", " "]
我們可以看到,它匹配了3次,每次都是空白。 因此,解決方案是為白名單添加空間(假設您不希望允許制表符/返回等)。
"description test 1 öäüÖÄÜß".match(/[^a-zA-Z0-9äöüÄÖÜß ]/g);
// null
您的測試字符串現在通過RegExp而沒有匹配,這意味着它在這種情況下有效。
出於某種原因,我需要使用unicode表示:
[^a-zA-Z0-9\u00E4\u00F6\u00FC\u00C4\u00D6\u00DC\u00df]`
謝謝大家 :)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.