首頁  >  文章  >  web前端  >  javascript正規表示式的定義與介紹

javascript正規表示式的定義與介紹

零下一度
零下一度原創
2017-07-18 16:01:441650瀏覽

JavaScript 正規表示式

正規表示式(英文:Regular Expression,在程式碼中常簡寫為regex、regexp或RE)使用單一字串來描述、符合一系列符合某個句法規則的字串搜尋模式。

搜尋模式可用於文字搜尋和文字取代。

什麼是正規表示式?

正規表示式是由一個字元序列所形成的搜尋模式。

當你在文字中搜尋資料時,你可以用搜尋模式來描述你要查詢的內容。

正規表示式可以是一個簡單的字符,或是更複雜的模式。

正規表示式可用於所有文字搜尋和文字取代的操作。

  1、透過RegExp建構函數定義一個正規表示式。第一個參數為正規表示式以字串傳入,第二個參數為修飾符也以字串傳入。

例:var caps = new RegExp("[A-Z]", "g");

  2、直接定義一個正規表示式直接量,表達式右正斜線符號「/」分隔,後面直接跟著修飾符。 (建議用這種)

例:var caps = /[A-Z]/g;

javascript正規表示式常用的字元

##描述範例[exp]#對於中括號([])包裹的字元序列,正規表示式處理程序會[exp]符合e,x,p中的任一個字元#[^exp]在中括號內前方加上^字符,將[^exp]符合e、x、p以外的任一個字元#[exp1-exp2]使用-連字元表示匹配[A-Z]符合A-Z任一字元;[0-9]符合0-9任一個數字(exp)對於小括號包裹的字元序列,正規表示式會以該字元順序(exp)符合"exp"這個字串(exp1\exp2)使用管道字元\exp+表達式後使用+字符,表示只有當該表達式exp+符合exp\s符合空白字符,即空格,tab製表符,回車符 A\sB匹配字串中含A空白符B\S#匹配除了空白字元意外的任一個字元A\SB匹配A不是空白符任意字元B\d符合從0-9的一個數字\D符合除了數字以為的任一字元\w#匹配一個文字字符,即一個字,數字或字母#\W匹配除了文字字元意外的任何一個字元
字元
匹配中括號內的任一個字元
匹配中括號外的任一符號,除去的意思
exp1字元到exp2字元序列中的任一個字元
確切進行比對(包含就能符合)
被包含一次或多次時匹配




除了常用的表達式,還有的就是修飾符了,用來定義正規表示式該如何使用的,有三種可能的值,可以作為選項單獨使用,也可以多個一次使用。

修飾符描述#g應用正規則表達式在比較字串中找出所有匹配的項,而不是只返回第一個匹配項i應用表達式進行比較匹配的同時,忽略大小寫m應用程式對多行的文字進行比較匹配,而不只是比較第一行

javascript正则表达式常见用法

有三种string类型的方法可以使用正则表达式。match()查找出能匹配正则表达式的所有子字符并将结果以字符串数组的形式返回。replace()方法查找和前者相同的子字符并用传入该方法的另一个字符串进行替换。search()只是定位能匹配到正则表达式的第一个子字符串的位置,并以数字序号形式放回字符串在整个字符串中的位置。

    var regEx = /他妈的/g,
        string = "我去你他妈的";
    alert(string.match(regEx));         //他妈的
    alert(string.search(regEx));        //3
    alert(string.replace(regEx, "*"));  //我去你*

replace()特殊用法

可用作javascript字符串的replace()方法第二个参数的特殊字符

字符序列 含义 例子
$$ 把找到的字符串用一个单独的$字符代替 "Hello World".replace(/o/g, "\$\$");//"Hell\$ W\$rld"
$& 使用第一个参数中所给定的字符串来替换所找到的子字符串 "Hello World".replace(/o/g, "$&");//"Hello World"
$`(ESC下面那个`) 使用所找到的字符串之前的文本来替换该子字符串 "Hello World".replace(/o/g, "$`");//"HellHell WHello Wrld"
$' 使用所找到的字符串之后的文本来替换该子字符串 "Hello World".replace(/o/g, "$'");//"Hell World Wrldrld"
\$1, \$2 当第一个参数中包含的正则表达式使用小括号对进行表达式分组,则可以提取出特定的表达式所匹配的子字符串(\$1对应第一个小括号,\$2对应第二个小括号) "Hello World".replace(/(o)(r)/g, "\$1\$2\$1\$2");//"Hello Wororldd"(查找到or,然后替换成oror

还有一种就是replace() 的第二个参数可以用函数方式传入,然后用函数的返回值来替换原子字符串。

var count = 0;
function replaceWithCount() {
    count = count + 1;
    return count;   
}
alert("Hello World".replace(/o/g, replaceWithCount)); //Hell1 W2rld
alert("Hello World".replace(/\s/g, replaceWithCount)); //Hello3World

总结

这只是我写的作为笔记的正则表达式一些简单的判断和javascript用法。正则表达式还可以很复杂很强大,那就要再你要使用的时候再去挖掘思考了。如果想了解更多,可以学习Mozilla开发者网络上的关于javascript中使用正则表达式的指引介绍。写得更加详细。

以上是javascript正規表示式的定義與介紹的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn