1. 程式人生 > 程式設計 >javascript中10個正則表示式使用介紹基礎篇

javascript中10個正則表示式使用介紹基礎篇

在 JavaScript 中,正則表示式通常用於兩個字串方法 : search() 和 replace()。

search() 方法 用於檢索字串中指定的子字串,或檢索與正則表示式相匹配的子字串,並返回子串的起始位置。

replace() 方法 用於在字串中用一些字元替換另一些字元,或替換一個與正則表示式匹配的子串。

1.匹配模式

正則表示式查詢與模式匹配的字串部分

在JavaScript中,它們是在正斜槓之間//或使用new RegExp()

例如:

var str = "Visit Jb51.net!";
var n = str.search(/jb51.net/i);

例子2

<script language="javascript">
var reg=new RegExp("終古","g"); //建立正則RegExp物件
var stringObj="終古人民共和國,終古人民";
var newstr=stringObj.replace(reg,"中國");
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,還得多加一個\,\\w,所以一般情況下,我們都是用//.

更多的可以參考這篇文章:JavaScript replace new RegExp使用介紹

然後用於match , test或replace

您可以預先定義正則表示式,也可以直接在呼叫方法時定義

javascript中10個正則表示式使用介紹基礎篇

2.匹配多個

一次匹配單個字元,

或將多個字元放在方括號[]中以捕獲任何匹配的字元

使用連字號捕獲一系列字元-.

舉例

[0-9]表示0,1,2...9的數字

[a-z]表示26個小寫字母

[A-Z]表示26個大寫字母

javascript中10個正則表示式使用介紹基礎篇

3.可選標誌

在正則表示式的末尾新增可選標誌,以修改匹配器的工作方式。

在JavaScript中,這些標誌是:

i =不區分大小寫 m =多行匹配 g =全域性匹配(查詢全部,而不是查詢一個)

javascript中10個正則表示式使用介紹基礎篇

4.開始和結束

在開始處使用插入符號^表示“字串開始”

在末尾使用美元符號$表示“字串結尾”

開始將匹配項組合在一起以匹配更長的字串

在表單驗證中,需要前面加 ^後要加$

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

javascript中10個正則表示式使用介紹基礎篇

5.萬用字元

使用萬用字元和特殊的轉義字元來匹配較大類的字元

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

\ d =數字 \ D =不是數字

\ s =空格 \ S =任何非空白

\ n新行 \w非空字母

javascript中10個正則表示式使用介紹基礎篇

6.特定數量

僅將特定數量的匹配字元或組與量詞匹配

=零或更多 =還有一個? = 0或1 {3} =正好3倍{2,4} =兩倍,三倍或四倍{2,} =兩倍或更多倍

javascript中10個正則表示式使用介紹基礎篇

7.小括號匹配組

使用parens()捕獲組

match會返回完整匹配加上組,除非您使用g標誌

使用管道運算子| 在parens()內部以指定該組匹配的內容

| =或

javascript中10個正則表示式使用介紹基礎篇

8.反斜槓

要匹配特殊字元,請使用反斜槓\

JS正則表示式中的特殊字元是:^ $ \. * +? ()[] {} |

因此,要匹配一個星號,可以使用:

\ *

不只是*

javascript中10個正則表示式使用介紹基礎篇

9.中括號裡的^

要匹配某個字元但要匹配某個字元,請在方括號內使用插入號^

這意味著^有兩個含義,可能會造成混淆。

當它在正則表示式的前面時,它表示“字串的開始”,而在方括號內使用時,則表示“不是此字元”。

javascript中10個正則表示式使用介紹基礎篇

10.總結

正則表示式可用於查詢和匹配各種內容,從url到檔名

然而! 如果您嘗試將正則表示式用於真正複雜的任務,請務必謹慎,例如解析電子郵件(這確實令人困惑,非常快)或HTML(非常規語言,因此無法由正則表示式完全解析)

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

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

但是大多數web開發人員想要使用正則表示式的東西都可以僅使用這些基本構建塊。

我已經在寫一堆有關真實世界正則表示式用例的後續文章🎉

原文:https://dev.to/chrisachard/intro-to-regex-for-web-developers-2fj4

譯文:http://caibaojian.com/10-regex-tip.html

我們小編特別補充,在這裡推薦大家檢視下面的文章。