當(dāng)前位置:
首頁 >
前端技术
> javascript
>内容正文
javascript
【RegExp】JavaScript中正则表达式判断匹配规则以及常用方法
生活随笔
收集整理的這篇文章主要介紹了
【RegExp】JavaScript中正则表达式判断匹配规则以及常用方法
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
字符串是編程時涉及到的最多的一種數(shù)據(jù)結(jié)構(gòu),對字符串進行操作的需求幾乎無處不在。 正則表達(dá)式是一種用來匹配字符串的強有力的武器。它的設(shè)計思想是用一種描述性的語言來給字符串定義一個規(guī)則,凡是符合規(guī)則的字符串,我們就認(rèn)為它“匹配”了。 \d可以匹配一個數(shù)字 ? ? ? ? ? ? ? ? '00\d'可以匹配'007'?,'\d\d\d'可以匹配'010' \w可以匹配一個字母或數(shù)字????? '\w\w'可以匹配'js' \s可以匹配一個空格(也包括Tab等空白符) \DWS都是表示匹配與小寫字母相反的匹配關(guān)系 \數(shù)字n表示指向第n個分組捕獲到的字符串文本的一個引用,能夠再次被匹配? ?????/(\d+)(0*)\1/可以匹配‘22300223’ .可以匹配任意字符 ? ? ? ? ? ? ? ?? 'js.'可以匹配'jsp'、'jss'、'js!' 正則表達(dá)式量詞: *表示任意個字符(包括0個) +表示至少一個字符 ?表示0個或1個字符 {n}表示n個字符 {n,m}表示n-m個字符 A|B可以匹配A或B ????? (J|j)ava(S|s)cript可以匹配'JavaScript'、'Javascript'、'javaScript'或者'javascript' ^表示行的開頭 ? ? ?????^\d表示必須以數(shù)字開頭 $表示行的結(jié)束 ? ? ?????\d$表示必須以數(shù)字結(jié)束 []表示范圍,字符類 ? ? ? ? ? ?? ? ? ? ? ? ? ? [a-zA-Z\_\$][0-9a-zA-Z\_\$]*可以匹配由字母或下劃線、$開頭,后接任意個由一個數(shù)字、字母或者下劃線、$組成的字符串,也就是JavaScript允許的變量名 [a-zA-Z\_\$][0-9a-zA-Z\_\$]{0, 19}更精確地限制了變量的長度是1-20個字符(前面1個字符+后面最多19個字符) []?中的^?表示排除某個字符 ? ?[^#?]?表示除了?和#的所有字符 ? ? ()表示捕獲型分組,可以將匹配的字符串進行分組,提取子串。? 如果正則表達(dá)式中定義了組,就可以在RegExp對象上用exec()方法提取出子串來。 exec()匹配成功后,返回一個Array,第一個元素是正則表達(dá)式匹配到的整個字符串,后面的字符串表示匹配成功的子串。 exec()匹配失敗時返回null。 ^(\d{3})-(\d{3,8})$分別定義了兩個組,可以直接從匹配的字符串中提取出區(qū)號和本地號碼: var re = /^(\d{3})-(\d{3,8})$/;
re.exec('010-12345'); // ['010-12345', '010', '12345']
re.exec('010 12345'); // null (?:)?分組不想被捕獲的時候使用,可以提高程序執(zhí)行速度,非捕獲型分組不會干擾捕獲型分組編號。 用正則表達(dá)式切分字符串比用固定的字符更靈活 'a,b;; c d'.split(/[\s\,\;]+/); // ['a', 'b', 'c', 'd']
?
RegExp對象的test()方法用于測試給定的字符串是否符合條件。 var re = /^\d{3}\-\d{3,8}$/; re.test('010-12345'); // true re.test('010-1234x'); // false?
需要特別指出的是,正則匹配默認(rèn)是貪婪匹配,也就是匹配盡可能多的字符。 var re = /^(\d+)(0*)$/; re.exec('102300'); // ['102300', '102300', '']?
由于\d+采用貪婪匹配,直接把后面的0全部匹配了,結(jié)果0*只能匹配空字符串了。加個?就可以讓\d+采用非貪婪匹配:
var re = /^(\d+?)(0*)$/; re.exec('102300'); // ['102300', '1023', '00'] 特殊標(biāo)志 g標(biāo)志 ,表示全局匹配 i標(biāo)志,表示忽略大小寫 m標(biāo)志,表示執(zhí)行多行匹配 需要使用轉(zhuǎn)義符' \ '的15個特殊字符 / \ ?[ ?] ( ) ?{ } ? + * | . ^ $?轉(zhuǎn)載于:https://www.cnblogs.com/lemonade1172/p/7279945.html
總結(jié)
以上是生活随笔為你收集整理的【RegExp】JavaScript中正则表达式判断匹配规则以及常用方法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 老男孩教育每日一题-第108天-php-
- 下一篇: uva 11400 - Lighting