簡體   English   中英

用於驗證的正則表達式不起作用

[英]regular expression for validation not working

我在表單中有一個“描述文字區域”,用戶可以在其中輸入商品的描述。

這是在提交表單之前通過javascript驗證的。

驗證步驟之一是:

  else if (!fld.value.match(desExp)){

和desExp:

 var desExp = /^\s*(\w[^\w]*){3}.*$/gm;

現在我的問題是,這對所有情況都適用,除了描述開始使用瑞典語言的特殊字符(å,ä,ö)的描述。

這將無法工作:

    åäö hello world

但這將:

    hello world åäö

任何修復?

謝謝

我想使用更廣泛的類別會起作用,例如:

/^\s*([\wåäö][^\w]*){3}.*$/gm;

除非我有誤解,否則您只是想驗證字符串是否至少包含3個單詞字符? 開頭的\\ s *告訴它尋找盡可能多的空格字符。 然后,模式(\\ w [^ \\ w] )將匹配任何單詞字符,后跟零個或多個非單詞字符。 {3}將斷言存在三個單詞字符。 的。 最后將匹配字符串的其余部分。

因此,如果我的理解和分解是正確的,那么您會想要的是嗎?

/(\w\W*){3}/gm

它將匹配任何包含3個單詞字符的字符串,無論它們內部是什么。 它與您的稍有不同,因為您的第一個單詞字符前只需要空格即可。 我不確定這是否是您想要的,但是如果是,請告訴我,我將對其進行修改...

編輯實際上, 我發現了與此相關的問題

因此,考慮到這一點,您可以執行以下操作:

var desExp = /^\s*([\w\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF][^\w\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]*){3}.*$/gm;

[\\w\ -\퟿\豈-\﷏\ﷰ-\￯]將匹配任何單詞字符(UTF8或Latin-1)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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