簡體   English   中英

javascript中字符類中的范圍亂序

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

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