在 JavaScript 中,正則表達(dá)式通常用于兩個(gè)字符串方法 : search() 和 replace()。
search() 方法 用于檢索字符串中指定的子字符串,或檢索與正則表達(dá)式相匹配的子字符串,并返回子串的起始位置。
replace() 方法 用于在字符串中用一些字符替換另一些字符,或替換一個(gè)與正則表達(dá)式匹配的子串。
1.匹配模式
正則表達(dá)式查找與模式匹配的字符串部分
在JavaScript中,它們是在正斜杠之間//或使用new RegExp()
例如:
var str = "Visit Jb51.net!";
var n = str.search(/jb51.net/i);
例子2
script language="javascript">
var reg=new RegExp("終古","g"); //創(chuàng)建正則RegExp對(duì)象
var stringObj="終古人民共和國(guó),終古人民";
var newstr=stringObj.replace(reg,"中國(guó)");
alert(newstr);
/script>
例子3
function dotag()
{
第一種寫(xiě)法RegExp
document.form1.tag.value = trim(document.form1.tag.value.replace(new RegExp(',',"gm"),','));
第二種用//
document.form1.tag.value = trim(document.form1.tag.value.replace(/,/gm,",");
}
是不是第二中更好看,第一種遇到\w,還得多加一個(gè)\,\\w,所以一般情況下,我們都是用//.
更多的可以參考這篇文章:JavaScript replace new RegExp使用介紹
然后用于match , test或replace
您可以預(yù)先定義正則表達(dá)式,也可以直接在調(diào)用方法時(shí)定義

2.匹配多個(gè)
一次匹配單個(gè)字符,
或?qū)⒍鄠€(gè)字符放在方括號(hào)[]中以捕獲任何匹配的字符
使用連字號(hào)捕獲一系列字符-.
舉例
[0-9]表示0,1,2...9的數(shù)字
[a-z]表示26個(gè)小寫(xiě)字母
[A-Z]表示26個(gè)大寫(xiě)字母

3.可選標(biāo)志
在正則表達(dá)式的末尾添加可選標(biāo)志,以修改匹配器的工作方式。
在JavaScript中,這些標(biāo)志是:
i =不區(qū)分大小寫(xiě) m =多行匹配 g =全局匹配(查找全部,而不是查找一個(gè))

4.開(kāi)始和結(jié)束
在開(kāi)始處使用插入符號(hào)^表示“字符串開(kāi)始”
在末尾使用美元符號(hào)$表示“字符串結(jié)尾”
開(kāi)始將匹配項(xiàng)組合在一起以匹配更長(zhǎng)的字符串
在表單驗(yàn)證中,需要前面加 ^后要加$
更多的可以參考這篇文章:https://www.jb51.net/article/118265.htm

5.通配符
使用通配符和特殊的轉(zhuǎn)義字符來(lái)匹配較大類(lèi)的字符
. =除換行符外的任何字符
\ d =數(shù)字 \ D =不是數(shù)字
\ s =空格 \ S =任何非空白
\ n新行 \w非空字母

6.特定數(shù)量
僅將特定數(shù)量的匹配字符或組與量詞匹配
=零或更多 =還有一個(gè)? = 0或1 {3} =正好3倍{2,4} =兩倍,三倍或四倍{2,} =兩倍或更多倍

7.小括號(hào)匹配組
使用parens()捕獲組
match會(huì)返回完整匹配加上組,除非您使用g標(biāo)志
使用管道運(yùn)算符| 在parens()內(nèi)部以指定該組匹配的內(nèi)容
| =或

8.反斜杠
要匹配特殊字符,請(qǐng)使用反斜杠\
JS正則表達(dá)式中的特殊字符是:^ $ \. * +? ()[] {} |
因此,要匹配一個(gè)星號(hào),可以使用:
\ *
不只是*

9.中括號(hào)里的^
要匹配某個(gè)字符但要匹配某個(gè)字符,請(qǐng)?jiān)诜嚼ㄌ?hào)內(nèi)使用插入號(hào)^
這意味著^有兩個(gè)含義,可能會(huì)造成混淆。
當(dāng)它在正則表達(dá)式的前面時(shí),它表示“字符串的開(kāi)始”,而在方括號(hào)內(nèi)使用時(shí),則表示“不是此字符”。

10.總結(jié)
正則表達(dá)式可用于查找和匹配各種內(nèi)容,從url到文件名
然而! 如果您嘗試將正則表達(dá)式用于真正復(fù)雜的任務(wù),請(qǐng)務(wù)必謹(jǐn)慎,例如解析電子郵件(這確實(shí)令人困惑,非??欤┗騂TML(非常規(guī)語(yǔ)言,因此無(wú)法由正則表達(dá)式完全解析)
正則表達(dá)式還有(當(dāng)然)還有更多,例如懶惰vs貪婪,超前和捕獲
更多的可以查看這篇文章:https://www.jb51.net/article/181099.htm
但是大多數(shù)web開(kāi)發(fā)人員想要使用正則表達(dá)式的東西都可以?xún)H使用這些基本構(gòu)建塊。
我已經(jīng)在寫(xiě)一堆有關(guān)真實(shí)世界正則表達(dá)式用例的后續(xù)文章🎉
原文:https://dev.to/chrisachard/intro-to-regex-for-web-developers-2fj4
譯文:http://caibaojian.com/10-regex-tip.html
腳本之家小編特別補(bǔ)充,在這里推薦大家查看下面的文章。
您可能感興趣的文章:- 正則表達(dá)式30分鐘入門(mén)教程
- 揭開(kāi)正則表達(dá)式的神秘面紗(regexlab出品)