簡體   English   中英

正則表達式禁止所有特殊字符但允許jQuery中的德語變音符號?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM