![](/img/trans.png)
[英]JavaScript Unicode Regex - Range out of order in character class
[英]Range out of order in character class in javascript
我不知道為什么我的正則表達式不正確:
var domain = "google\.com\.br";
var reEmail = new RegExp("^([A-Za-z0-9_\-\.])+\@" + domain + "$");
我需要這個來驗證電子郵件。 下面的例子: reEmail.test("contact@google.com.br");
我收到此錯誤:
字符類中的范圍亂序
因為您使用字符串_\\-\\.
創建 RegExp _\\-\\.
變成_-.
這就是無效范圍。 (它是從_
到.
的范圍,這是不正確的)
你需要雙重逃脫它:
new RegExp("^([A-Za-z0-9_\\-\\.])+@" + domain + "$");
這樣\\\\
就變成了字符串中的\\
,然后用於轉義正則表達式中的-
。
編輯:
如果您通過字符串創建 RegExp,記錄結果總是有幫助的,以便您查看是否做對了所有事情:
例如你的正則表達式部分
console.log("^([A-Za-z0-9_\-\.])+\@");
結果是:
^([A-Za-z0-9_-.])+@
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.