十、JavaScript中的正则表达式(六)
@Author:Runsen
@Date:2020/5/26
作者介紹:Runsen目前大三下學(xué)期,專業(yè)化學(xué)工程與工藝,大學(xué)沉迷日語,Python, Java和一系列數(shù)據(jù)分析軟件。導(dǎo)致翹課嚴(yán)重,專業(yè)排名中下。.在大學(xué)60%的時(shí)間,都在CSDN。決定今天比昨天要更加努力。
今天,我要繼續(xù)補(bǔ)充JavaScript,就把JavaScript中的正則表達(dá)式滅了算了。在Python中,正則表達(dá)式就是re模塊。在JavaScript,怎么搞?
不會(huì),先去菜鳥教程看看咯i
我先說明下,在JavaScript中不用導(dǎo)入什么東西。
文章目錄
- 基礎(chǔ)用法
- 構(gòu)造函數(shù)創(chuàng)建正則表達(dá)式的對(duì)象
- 或關(guān)系
- 檢查一個(gè)字符串中是否包含 a或b
- 其他規(guī)則
- 舉例
- 檢查一個(gè)字符串是否是一個(gè)合法手機(jī)號(hào)
- 去掉字符串開頭和結(jié)尾的空格
- 常用正則表達(dá)式(熟記)
基礎(chǔ)用法
/正則表達(dá)式主體/修飾符(可選)比如/w3school/i是一個(gè)正則表達(dá)式。
w3school 是模式(pattern)(在搜索中使用)。
i是修飾符(把搜索修改為大小寫不敏感)。
有點(diǎn)抄W3C的,我還是改為/runsen/i
這樣,字符串就有search()方法了,search() 方法使用表達(dá)式來搜索匹配,然后返回匹配的位置。
var str = "Hello Runsen"; var n = str.search(/runsen/i );這也是最常見的用法,還有一個(gè)replace() 的方法。用正則表達(dá)式來匹配對(duì)應(yīng)的字符串,你看下面的例子Runsen變成Maoli
var str = "Hello Runsen"; var n = str.replace(/runsen/i,"Maoli");構(gòu)造函數(shù)創(chuàng)建正則表達(dá)式的對(duì)象
語法:
var 變量 = new RegExp("正則表達(dá)式"); // 注意,參數(shù)是字符串 var 變量 = new RegExp("正則表達(dá)式", "匹配模式"); // 注意,兩個(gè)參數(shù)都是字符串備注:RegExp的意思是 Regular expression。使用typeof檢查正則對(duì)象,會(huì)返回object。
上面的語法中,既可以傳一個(gè)參數(shù),也可以傳兩個(gè)參數(shù)。
創(chuàng)建了正則表達(dá)式的對(duì)象后,該怎么使用呢?大致分為兩個(gè)步驟:
-
(1)創(chuàng)建正則表達(dá)式的對(duì)象 reg。
-
(2)使用 reg 的test() 方法,判斷指定字符串是否符合規(guī)則。
正則表達(dá)式的test()方法
myReg.test(str); // 判斷字符串 str 是否符合 指定的 myReg 這個(gè)正則表達(dá)式的規(guī)則解釋:使用test()這個(gè)方法可以用來檢查一個(gè)字符串是否符合正則表達(dá)式的規(guī)則,如果符合則返回true,否則返回false。
下面來看看下面的例子。
1、傳一個(gè)參數(shù)時(shí):
構(gòu)造函數(shù) RegExp 中,可以只傳一個(gè)參數(shù)。
代碼舉例:
var reg = new RegExp("a"); // 定義一個(gè)正則表達(dá)式:檢查一個(gè)字符串中是否含有 avar str1 = "Maoli"; var str2 = "Runsen";// 通過 test()方法,判斷字符串是否符合 上面定義的 reg 規(guī)則 console.log(reg.test(str1)); // 打印結(jié)果:true console.log(reg.test(str2)); // 打印結(jié)果:false注意,上面的例子中,我們是先定義了一個(gè)正則表達(dá)式的規(guī)則,然后通過正則表達(dá)式的test()方法來判斷字符串是否符合之前定義的規(guī)則。
2、傳兩個(gè)參數(shù)時(shí)
我們可以傳遞一個(gè)匹配模式作為第二個(gè)參數(shù)。這個(gè)參數(shù)可以是:
-
i 忽略大小寫。這里的 i 指的是 ignore。
-
g 全局匹配模式。這里的 g 指的是 global。
代碼舉例:
var reg = new RegExp('A', 'i'); var str = 'Maoli';console.log(reg.test(str)); // 打印結(jié)果:true或關(guān)系
檢查一個(gè)字符串中是否包含 a或b
寫法1:
var reg = /a|b/;解釋:使用 | 表示或的意思。
寫法2:
var reg = /[ab]/; // 跟上面的那行語法,是等價(jià)的解釋:這里的[]也是表示或的意思。
[]這個(gè)符號(hào)在正則還是比較常用的。
[]表示:或
其他規(guī)則
一些其他規(guī)則:
-
/[ab]/ 等價(jià)于 /a|b/:檢查一個(gè)字符串中是否包含 a或b
-
/[a-z]/:檢查一個(gè)字符串那種是否包含任意小寫字母
-
/[A-Z]/:任意大寫字母
-
/[A-z]/:任意字母
-
/[0-9]/:任意數(shù)字
-
/a[bde]c/:檢查一個(gè)字符串中是否包含 abc 或 adc 或 aec
舉例
檢查一個(gè)字符串是否是一個(gè)合法手機(jī)號(hào)
手機(jī)號(hào)的規(guī)則:
-
以1開頭
-
第二位是3~9之間任意數(shù)字
-
三位以后任意9位數(shù)字
正則實(shí)現(xiàn):
var phoneStr = "13067890123";? var phoneReg = /^1[3-9][0-9]{9}$/;? console.log(phoneReg.test(phoneStr));去掉字符串開頭和結(jié)尾的空格
str = str.replace(/^\s*|\s*$/g,"");常用正則表達(dá)式(熟記)
| 密碼 | /^[a-zA-Z0-9_\-\@\#\&\*]{6,12}$/ |
| 前后空格 | /^\s+|\s+$/g |
| 電子郵箱 | /^[a-zA-Z0-9_\.-]+@([a-zA-Z0-9-]+[\.]{1})+[a-zA-Z]+$/ |
| 手機(jī)號(hào) | /^1[3-9][0-9]{9}$/ |
更多的看菜鳥教程正則表達(dá)式
總結(jié)
以上是生活随笔為你收集整理的十、JavaScript中的正则表达式(六)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 九、玩转JavaScript的数组(五)
- 下一篇: 十二、深入JavaScript中的Dat