javascript
正则表达式(基础、常用)----JavaScript
簡介:
表達式作用:匹配字符串。
正則表達式的組成:是由元字符或者這是限定符組成的一個式子。
正則表達式的參考文檔:
?????? https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Guide/Regular_Expressions
?????? http://www.runoob.com/jsref/jsref-obj-regexp.html
元字符:
?注意:下面列出的僅為最常用的。
. | 表示的是:除了\n以外的任意的一個字符 |
[] | 表示的是范圍: [0-9] 表示0-9中的任意一個數字 [a-z]、[A-Z]、[a-zA-Z]、[0-9a-zA-Z] 另一個意思就是把元字符的意思干掉 [.] 就是表示 “.” |
| | 或者。 [0-9] | [a-z] 表示的要么是一個數字,要么是一個小寫字母 |
() | 分組:([0-9])([1-5])(A-Z) 三組,從左邊開始計算 提升優先級: [0-9] | ([a-z]) | [A-Z]? 從([a-z])開始算 |
\d | 任意一個數字 ???相當于[0-9] |
\D | 任意一個非數字 ??相當于[^0-9] |
\s | 任意一個空白字符 |
\S | 任意一個非空白字符 |
\w | 非特殊符號 ?????相當于[0-9a-zA-Z_] |
\W | 特殊符號 ???????相當于[^0-9a-zA-Z] |
\b | 單詞邊界 |
限定符:
* | 表示的是前面的表達式出現了0到多次 [a-z][0-9]*? 表示:小寫字母中的任意一個 后面是要么是沒有數字的,要么是多個數字的 ???例如:asd123 |
+ | 表示的是:前面的表達式出現了一次到多次 [a-z][9]+:? 小寫字母一個后面最少一個9,或者多個9???? asad9bhjk |
? | 表示的是:前面的表達式出現了0-1次(最少是0,最多是1) [4][a-z]?:“1234” “1234h” “1234kjko5” |
{} | 限定前面的表達式出現的次數 {0,} 前面的表達式出現>=0? 相當于:* {1,} 前面的表達式出現>=1? 相當于:+ {0,1} 前面的表達式出現>=0 且 =< 1相當于:? {4} 前面的表達式出現4次 |
^ | 表示的是開始,或者是取非(取反) ^[a-z] 以小寫字母開頭 [^0-9] 取反,非數字 [^a-z] 取反,非小寫字母 ?????[^0-9a-zA-Z_] 表示特殊符號 |
$ | 表示的是以什么結束 [0-9][a-z]$ 表示必須以小寫字母結尾,而且倒數第二個必須是數字 |
正則表達式案例:
1.????身份證號的匹配
15位或者18位
?????? ((1-9)[0-9]{14})|((1-9)[0-9]{16}[0-9xX])
?????? ([1-9][0-9]{14})([0-9]{2}[0-9xX])?
2.????座機號碼的正則表達式
????010-19878523??????? 0431-45612396
????[0-9]{3,4}[-][0-9]{8}??????? \d{3,4}[-]\d{8}
3.????郵箱的正則表達式
? ? ? ??Sd123_3.-df@houb.com.cn
????????[0-9a-zA-Z_.-]+[@][0-9a-zA-Z_-]+([.][0-9a-zA-Z]+){1,2}
JS中正則表達式:
修飾符
修飾符用于執行區分大小寫和全局匹配:
修飾符 | 描述 |
i | 執行對大小寫不敏感的匹配。 |
g | 執行全局匹配(查找所有匹配而非在找到第一個匹配后停止)。 |
m | 執行多行匹配。 |
?
RegExp 對象方法
方法 | 描述 |
compile | 在 1.5 版本中已廢棄。?編譯正則表達式。 |
exec | 檢索字符串中指定的值。返回找到的值,并確定其位置。 |
test | 檢索字符串中指定的值。返回 true 或 false。 |
toString | 返回正則表達式的字符串。 |
支持正則表達式的 String 對象的方法
方法 | 描述 | FF | IE |
search | 檢索與正則表達式相匹配的值。 | 1 | 4 |
match | 找到一個或多個正則表達式的匹配。 | 1 | 4 |
replace | 替換與正則表達式匹配的子串。 | 1 | 4 |
split | 把字符串分割為字符串數組。 | 1 | 4 |
代碼樣例:
// 正則表達式中:g 表示的是全局匹配模式
// 正則表達式中:i 表示的忽略大小寫
var str1 = "中國移動:10086,中國聯通:10010,中國電信:10000";
// 把里面的數字全部提取出來
var array1 = str1.match(/\d{5}/g);
console.log(array1);
// 通過分組提取日
var str2 = "2018-11-11";
var array2 = str2.match(/(\d{4})[-](\d{2})[-](\d{2})/g);
console.log(array2) //["2018-11-11"]
// 使用正則表達式對象.$3
console.log(RegExp.$3); // 11
// 分解郵箱信息
var email = "wwy456@gmail.com.cn";
var emailinfo = email.match(/(^[0-9a-zA-Z_.-]+)[@]([0-9a-zA-Z_-]+)(([.][a-zA-Z]+){1,2}$)/);
console.log(emailinfo);
console.log(RegExp.$1); // 用戶名
console.log(RegExp.$2); // gmail
console.log(RegExp.$3); // 域名
/*replace方法*/
var str3="? 剔除所有? 的空格? ";
str3 = str3.replace(/\s+/g,"");
console.log(str3);
// 忽略大小寫并全局替換
var str4 = "HHhhppHhH";
str4 = str4.replace(/[h]/ig, "S");
console.log(str4); // SSSSppSSS
總結
以上是生活随笔為你收集整理的正则表达式(基础、常用)----JavaScript的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: JAVA中的异常使用
- 下一篇: JavaScript中this指向问题