我不知道,因爲我的正則表達式是不正確的:範圍無序的字符類在javascript
var domain = "google\.com\.br";
var reEmail = new RegExp("^([A-Za-z0-9_\-\.])+\@" + domain + "$");
我需要這個來驗證電子郵件,例如:reEmail.test("[email protected]");
我得到這個錯誤:
範圍不按順序在字符類
我不知道,因爲我的正則表達式是不正確的:範圍無序的字符類在javascript
var domain = "google\.com\.br";
var reEmail = new RegExp("^([A-Za-z0-9_\-\.])+\@" + domain + "$");
我需要這個來驗證電子郵件,例如:reEmail.test("[email protected]");
我得到這個錯誤:
範圍不按順序在字符類
因爲你使用字符串創建正則表達式的_\-\.
變爲_-.
,那是無效範圍。 (距離_
到.
一個範圍,這是不正確的)
您需要雙逃生它:
new RegExp("^([A-Za-z0-9_\\-\\.])[email protected]" + domain + "$");
這樣的\\
成爲String中\
,然後用以逃避RegExp中的-
。
編輯:
例如:
如果通過字符串創建的RegExp它始終是有用的,這樣你看,如果你做的一切權利記錄結果你對正則表達式的一部分
console.log("^([A-Za-z0-9_\-\.])+\@");
結果:
^([A-Za-z0-9_-.])[email protected]
使用正則表達式字面:'/ ^([A-ZA-Z0-9 _ \ - ])+ @ /'! – Bergi