主頁 > 知識(shí)庫(kù) > javascript中10個(gè)正則表達(dá)式使用介紹基礎(chǔ)篇

javascript中10個(gè)正則表達(dá)式使用介紹基礎(chǔ)篇

熱門標(biāo)簽:阿里云 銀行業(yè)務(wù) Mysql連接數(shù)設(shè)置 團(tuán)購(gòu)網(wǎng)站 Linux服務(wù)器 服務(wù)器配置 科大訊飛語音識(shí)別系統(tǒng) 電子圍欄

在 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()
{
第一種寫法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è)小寫字母

[A-Z]表示26個(gè)大寫字母

3.可選標(biāo)志

在正則表達(dá)式的末尾添加可選標(biāo)志,以修改匹配器的工作方式。

在JavaScript中,這些標(biāo)志是:

i =不區(qū)分大小寫 m =多行匹配 g =全局匹配(查找全部,而不是查找一個(gè))

4.開始和結(jié)束

在開始處使用插入符號(hào)^表示“字符串開始”

在末尾使用美元符號(hào)$表示“字符串結(jié)尾”

開始將匹配項(xiàng)組合在一起以匹配更長(zhǎng)的字符串

在表單驗(yàn)證中,需要前面加 ^后要加$

更多的可以參考這篇文章:https://www.jb51.net/article/118265.htm

5.通配符

使用通配符和特殊的轉(zhuǎn)義字符來匹配較大類的字符

. =除換行符外的任何字符

\ 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í),它表示“字符串的開始”,而在方括號(hào)內(nèi)使用時(shí),則表示“不是此字符”。

10.總結(jié)

正則表達(dá)式可用于查找和匹配各種內(nèi)容,從url到文件名

然而! 如果您嘗試將正則表達(dá)式用于真正復(fù)雜的任務(wù),請(qǐng)務(wù)必謹(jǐn)慎,例如解析電子郵件(這確實(shí)令人困惑,非常快)或HTML(非常規(guī)語言,因此無法由正則表達(dá)式完全解析)

正則表達(dá)式還有(當(dāng)然)還有更多,例如懶惰vs貪婪,超前和捕獲

更多的可以查看這篇文章:https://www.jb51.net/article/181099.htm

但是大多數(shù)web開發(fā)人員想要使用正則表達(dá)式的東西都可以僅使用這些基本構(gòu)建塊。

我已經(jīng)在寫一堆有關(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分鐘入門教程
  • 揭開正則表達(dá)式的神秘面紗(regexlab出品)

標(biāo)簽:萍鄉(xiāng) 大理 棗莊 江蘇 廣元 蚌埠 衡水 衢州

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《javascript中10個(gè)正則表達(dá)式使用介紹基礎(chǔ)篇》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266