JS Regex正則表達式的使用(轉)


字符串帶的正則表達式相關的方法

1.search()

搜索符合指定正則表達式在目標字符串中的位置

str.search('hello');    //str字符串中查找search字符串,成功返回位置,否則返回-1
str.search(/hello/);    //str中查找符合正則表達式/hello/的字符串位置
str.search(/hello/g);   //全局
str.search(/hellO/i);   //忽略大小寫
str.search(/hellO/m);   //多行匹配
2.match()

搜索指定正則表達式在目標字符串中的字符串,返回的不僅僅是位置

str.match("hello"); //匹配成功返回一個位置信息的數組
str.match("Hello"); //匹配沒成功,返回null
str.match(\HELLO\i);    //不區分大小寫
3.replace()
str.replace(“world”,”jack”); //查找str中的world,並替換成jack,返回的是替換后的字符串 
str.replace(/world/,”jack”); //同上
4.split()

根據正則表達式去分割相應的字符串,輸入字符串,輸出數組

console.log(str.split(" ")); 以空格為分隔符分割str字符串,返回數組
5.join()

數組合並成字符串

arrdata.join(","); 合並arrdata,並用,連接

RegExp對象的方法

1.test()

和search的作用差不多,只不過使用的方法是相反的,並且返回的是yes或no

/hello/.test(str); 有的話返回true,無的話返回false
2.exec()

和math的作用差不多,使用相反,效果一樣

/hello/.exec(str);在str中查找匹配/hello/的字符串,有的話返回對應的結果和index等信息,沒有的話返回null

模式匹配

帶方括號的[], ——– 范圍
[abc]:  查找在方括號中的任意一個字符;
[^abc]: 查找不在方括號中的任意一個字符;
[0-9][a-z]: 查找0-9中的任意一個數字加[a-z]中的任一字符的組合
原字符 ——– 大范圍
.   任意單個字符(略略略,點點點)
\w  字母數字下划線((word)低調的小寫)
\W  和\w是相反的(傲慢與偏見的大寫)
\d  數字((digit)低調的小寫)
\D  非數字(傲慢也偏見的大寫)
\s  空格(spache)
\S  傲慢的大S
高級匹配 ——– 修飾符
n*  n的個數大於等於0
n?  n的個數大於等於0小於等於1
n+  n的個數大於等於1
n{233}  n的個數等於233的字符串
n{1,233} n的個數大於等於1,小雨等於233的字符串
n{1,}   n的格個數大於等於1
n$ 匹配以n結尾的字符串
^n  匹配以n開頭的字符串
貪婪模式 —— (高級模式后面加?即可)

常用正則表達式

手機號: /(^1[3|4|5|7|8][0-9]{9}$)/
ip地址:/\d+\.\d+\.\d+\.\d+/g
域名:/http:\/\/[\w|.]+\w+/g
手機號碼:/1[3|4|5|6|7|8][\d]{9}/g
匹配漢字:/[\u4e00-\u9fa5]/g
匹配郵箱:/\w{1,16}@\w{1,16}\.\w{1,8}/g

備注

/g 表示該表達式將用來在輸入字符串中查找所有可能的匹配,返回的結果可以是多個。如果不加/g最多只會匹配一個
/i  表示匹配的時候不區分大小寫
/m 表示多行匹配,什么是多行匹配呢?就是匹配換行符兩端的潛在匹配。影響正則中的^$符號


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM