/s$/ 匹配以字母"s"結尾的字符串
正則表達式語法通過反斜杠(\)開頭的轉義序列支持某些非字母的字符如"\n"為直接量換行符
常用的
\o NUL字符
\t 制表符
\n 換行符
\v 垂直制表符
\f 換頁符
\r 回車
\xnn 十六進制指定的拉丁字符
\uxxxx
\cX
/[abc]/ 和字母"a","b","c"中的任何一個字母都匹配.
/[^abc]/和除字母"a","b","c"之外的所有字符匹配.
/[a-z]/ 匹配英文小寫字母
/[a-zA-Z0-9]/ 匹配拉丁字母集中任何字母數字以及字符.
\w 任何ascii單字字符,等價于[a-zA-Z0-9_]
\W 任何ascii非單字字符,等價于[^a-zA-Z0-9_]
\s 匹配的是空格符(非Unicode空白符)
\S 任何非Unicode空白符,注意\w和\S不同
\d 任何ascii數字,等價于[0-9]
\D 除了ascii數字之外的任何字符,等價于[^0-9]
/[\b]/ 退格符
方框號內也可以用這些字符轉義如
/[\s\d] 等同于任意的空白符或數字
/a-/ 匹配一個或多個字符 與aaa都配
/a+?/ 匹配一個或多個必要的字母a.該模式只匹配第一個字母a
/ab| cd| ef/ 匹配的是字符串"ab",或者是字符串"cd",又或者是字符串
"ef"
/\d{3}|[a-z]{4}/ 匹配的是三位數字或四個小寫字母
注意,選項是從左到右考慮,直到發現了匹配項,如果左邊的選擇項匹配
,就忽略了右邊的匹配項.即使它產生更好的匹配.所以 /a|ab/ 就用到
"ab"上時,它只匹配第一個字符
/java(script)?/ 匹配的是字符串"java",后面既可以有"script",也可以沒有
/(ab|cd)+|ef)/ 既可以是字符串"ef",也可以是字符串"ab"或者"cd"的
一次或多次重復
| 選擇.匹配的是該符號左邊的子表達式或右邊的子表達式
(...) 組合.將幾個項目組合為一個單元.
例:匹配"JavaScript"可以使用/^JavaScript$/
如想檢索"Java" 可以使用 /\sJava\s/ 要求在單字Java之前和之后都有空格
但這樣有兩個問題:1.如果Java位于開頭或結尾時,不匹配
2.當找到與之匹配的字符串時,它返回的匹配字符串的前端和后端都有空格
因則我們可以:/\bJava\b/
元字符
+ 元字符規定其前導字符必須在目標.對象中連續出現一次或多次
* 元字符規定其前導字符必須在目標對象中出現零次或連續多次
? 規定其前導對象必須在目標對象中連續出現零次或一次
/fo+/
因為上述正則表達式中包含“+”元字符,表示可以與目標對象中的 “fool”, “fo”, 或者
“football”等在字母f 后面連續出現一個或多個字母o 的字符串相匹配。
/eg*/
因為上述正則表達式中包含“*”元字符,表示可以與目標對象中的 “easy”, “ego”, 或者 “egg”
等在字母e 后面連續出現零個或多個字母g 的字符串相匹配
/Wil?/
因為上述正則表達式中包含“?”元字符,表示可以與目標對象中的 “Win”, 或者 “Wilson”,等在字
母i 后面連續出現零個或一個字母l 的字符串相匹配。
/jim{2,6}/
上述正則表達式規定字符m 可以在匹配對象中連續出現2-6 次,因此,上述正則表達式可以同jimmy 或
jimmmmmy 等字符串相匹配。
“^”定位符規定匹配模式必須出現在目標字符串的開頭
“$”定位符規定匹配模式必須出現在目標對象的結尾
,\b 定位符規定匹配模式必須出現在目標字符串的開頭或結尾的兩個邊界之一
“\B”定位符則規定匹配對象必須位于目標字符串的開頭和結尾兩個邊界之內,即匹配對象既不能作為目標字符串的開頭,也不能作為目標字符串的結尾
/^hell/
因為上述正則表達式中包含“^”定位符,所以可以與目標對象中以 “hell”, “hello”或
“hellhound”開頭的字符串相匹配
/ar$/
因為上述正則表達式中包含“$”定位符,所以可以與目標對象中以 “car”, “bar”或 “ar” 結尾的
字符串相匹配。
/\bbom/
因為上述正則表達式模式以“\b”定位符開頭,所以可以與目標對象中以 “bomb”, 或 “bom”開頭的
字符串相匹配。
/man\b/
因為上述正則表達式模式以“\b”定位符結尾,所以可以與目標對象中以 “human”, “woman”或
“man”結尾的字符串相匹配。
我們可以使用正則表達式的test 或者search 方法來發現字符中是否符合某個模式。比如:
var ResultFlag = forms[0].UserName.value.search(/[a-z]|[A-Z]/);
if (ResultFlag==-1){alert(表單中的UserName 沒有包含任何字符!)};
工作中的新用法::
如:密碼中不要包含三位重復的字符
if(document.forms[0].cipher1.value.search(/(\S)\1{2}/) != -1)
{
alert("密碼中請不要包含三位重復的字符");
bool=false;
return bool;
}
后面跟的\1是向后引用,就是引用前面括號內的內容
這個非常實用哦