1. 程式人生 > >詳解JS正則replace的使用方法

詳解JS正則replace的使用方法

詳解JS正則replace的使用方法

原文地址:http://www.jb51.net/article/80544.htm

在講replace的高階應用之前,我們先簡單梳理一下JS正則中的幾個重要的知識點,以幫助你對基礎知識的回顧,然後再講解JS正則表示式在replace中的使用,以及常見的幾個經典案例。 

一、正則表示式的建立

JS正則的建立有兩種方式: new RegExp() 和 直接字面量。

?
1 2 3 4 5 //使用RegExp物件建立 var regObj = new RegExp( "(^\s+)|(\s+$)" , "g" );   //使用直接字面量建立
var regStr = /(^\s+)|(\s+$)/g;

其中 g 表示全文匹配,與之相關的還有 i 和m,i 表示匹配時忽略大小寫,m 表示多行匹配,如果多個條件同時使用時,則寫成:gmi 

二、()、[]、{} 的區別

() 的作用是提取匹配的字串。表示式中有幾個()就會得到幾個相應的匹配字串。比如 (\s+) 表示連續空格的字串。

[]是定義匹配的字元範圍。比如 [a-zA-Z0-9] 表示字元文字要匹配英文字元和數字。

{}一般用來表示匹配的長度,比如 \d{3} 表示匹配三個空格,\d[1,3]表示匹配1~3個空格。

三、^ 和 $

^ 匹配一個字串的開頭,比如 (^a) 就是匹配以字母a開頭的字串

$ 匹配一個字串的結尾,比如 (b$) 就是匹配以字母b結尾的字串

^ 還有另個一個作用就是取反,比如[^xyz] 表示匹配的字串不包含xyz

需要注意的是:如果^出現在[]中一般表示取反,而出現在其他地方則是匹配字串的開頭

四、\d  \s  \w  .

\d 匹配一個非負整數, 等價於 [0-9]

\s 匹配一個空白字元

\w 匹配一個英文字母或數字,等價於[0-9a-zA-Z]

.   匹配除換行符以外的任意字元,等價於[^\n]

五、* + ?

* 表示匹配前面元素0次或多次,比如 (\s*) 就是匹配0個或多個空格

+ 表示匹配前面元素1次或多次,比如 (\d+) 就是匹配由至少1個整陣列成的字串

? 表示匹配前面元素0次或1次,相當於{0,1} ,比如(\w?) 就是匹配最多由1個字母或數字組成的字串

六、test 、match

前面的大都是JS正則表示式的語法,而test則是用來檢測字串是否匹配某一個正則表示式,如果匹配就會返回true,反之則返回false

?
1 2 3 /\d+/.test( "123" ) ; //true   /\d+/.test( "abc" ) ; //false

match是獲取正則匹配到的結果,以陣列的形式返回

"186a619b28".match(/\d+/g); // ["186","619","28"] 

以上基本上是我經常用到的基礎知識,不是很全面,不常用的就沒有列出來,因為列出來也只是擺設,反而混淆主次!

七、replace

replace 本身是JavaScript字串物件的一個方法,它允許接收兩個引數:

replace([RegExp|String],[String|Function])
第1個引數可以是一個普通的字串或是一個正則表示式

第2個引數可以是一個普通的字串或是一個回撥函式

如果第1個引數是RegExp, JS會先提取RegExp匹配出的結果,然後用第2個引數逐一替換匹配出的結果

如果第2個引數是回撥函式,每匹配到一個結果就回調一次,每次回撥都會傳遞以下引數:

?
1 2 3 4 5 6 7 result: 本次匹配到的結果   $1,...$9: 正則表示式中有幾個(),就會傳遞幾個引數,$1~$9分別代表本次匹配中每個()提取的結果,最多9個   offset:記錄本次匹配的開始位置   source:接受匹配的原始字串

以下是replace和JS正則搭配使用的幾個常見經典案例: 

(1)實現字串的trim函式,去除字串兩邊的空格

?
1

相關推薦

JSreplace的使用方法

詳解JS正則replace的使用方法 原文地址:http://www.jb51.net/article/80544.htm 在講replace的高階應用之前,我們先簡單梳理一下JS正則中的幾個重要的知識點,以幫助你對基礎知識的回顧,然後再講解JS正則表示式在re

js表達式語法介紹

技術 invalid 我想 不同 小結 小括號 字符 rip 空字符串 1. 正則表達式規則 1.1 普通字符 字母、數字、漢字、下劃線、以及後邊章節中沒有特殊定義的標點符號,都是"普通字符"。表達式中的普通字符,在匹配一個字符串的時候,匹配與之相同的一個字符。

Python3 表達式(二)

tps 數字 HERE art lock style 普通 則表達式 通過 上一篇:詳解 Python3 正則表達式(一) 本文翻譯自:https://docs.python.org/3.4/howto/regex.html 博主對此做了一些批註和修改 ^_^ 使

JMeter表示式提取器

應用場景: 在一個執行緒組中,B請求需要使用A請求返回的資料,也就是常說的關聯,將上一個請求的響應結果作為下一個請求的引數,則需要對A請求的響應報文使用後置處理器,其中最方便最常用的就是正則表示式提取器了。 正則表示式提取器: 允許使用者從作用域內的sampler請求的伺服器響應結果中通過正則

JavaScript表示式(三)

本文是JavaScript正則表示式的第三篇文章,若是對正則表示式陌生的話,可以看我之前的兩篇文章。 詳解正則表示式(一) 詳解正則表示式(二) 貪婪模式和非貪婪模式 1、貪婪模式 在匹配成功的情況下,儘可能多的匹配。而JavaScript預設的就是貪婪模式。話不多說,直

JavaScript表示式(一)

RegExp 物件表示正則表示式,它是對字串執行模式匹配的強大工具 這篇文章主要是對正則表示式有一個全面的瞭解,學完之後,當再次看到一些比較複雜的正則表示式的時候就可以逐步分析了。當然,再加上一段時間的練習,相信你自己也可以學會怎麼使用正則表示式的。 1、例項化正則表示式的兩種方

JS——

序列 屬性 小寫 無效 表示 代碼 split方法 while循環 混淆   1.正則匹配規則字面量字符串匹配元字符:點字符(.) 匹配 除回車(\r)、換行(\n) 、行分隔符(\u2028)和段分隔符(\u2029)以外的所有字符。    位置字符(^ / $) ^/$

js 表達式1;(基本語法、test方法 exec方法 replace方法)

方法 忽略大小寫 基本語法 ext exp 劃線 nbsp repl 獲取 //語法1 var zz= new RegExp(‘aaa‘,‘igm‘); //初始化一個RegExP對象 $(‘#scn‘).text(zz.tes

js 表示式

開篇,還是得說說 ^ 和 $ 他們是分別用來匹配字串的開始和結束,以下分別舉例說明 "^The": 開頭一定要有"The"字串; "of despair$": 結尾一定要有"of despair" 的字串; 那麼,

js表示式 URL格式匹配

0、URL格式 protocol :// hostname[:port] / path / [;parameters][?query]#fragment [;parameters]沒見過 這裡就不做相關匹配了   1、程式碼及執行結

js關鍵字

<!DOCTYPE HTML> <html> <head> <title>please enter your title</

js 替換 replace()方法

replace方法的語法是:stringObj.replace(rgExp, replaceText) 其中stringObj是字串(string),reExp可以是正則表示式物件(RegExp)也可以是字串(string),replaceText是替代查詢到的字串。。為了

js表示式在(replace()方法

有字串var=’abc455efgabcab’ 去掉字串中的a、b、c字元,形成結果345efg <script type="text/javascript"> var str='abc345efgabcab';

js驗證數字的方法

字符 ack xxxxxxxx clas cti validate 浮點 則表達式 pre 正則驗證數字的方法: <script type="text/javascript"> function validate(){ var reg

js表達式test方法、exec方法與字符串search方法區別

lac exec js正則 pan asc 一個數 gobject school match 1.正則表達式test方法 test() 方法用於檢測一個字符串是否匹配某個模式 返回值: 如果字符串 string 中含有與 RegExpObject 匹配的文本,則返回

JS截取兩個字符串之間及字符串前後內容的方法

var 正則 str 字符串 alert bbf js正則 aaa 之間 JS正則截取兩個字符串之間及字符串前後內容的方法 1、js截取兩個字符串之間的內容: var str = "aaabbbfff";str = str.match(/aaa(\S*)

JStest()方法

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

JS獲取HTML DOM元素的8種方法

詳解JS獲取HTML DOM元素的8種方法 什麼是HTML DOM 文件物件模型(Document Object Model),是W3C組織推薦的處理可擴充套件置標語言的標準程式設計介面。簡單理解就是HTML DOM 是關於如何獲取、修改、新增或刪除 HTML 元素的標準。我們用Ja

js的一些用法 方法

//////////////String物件 String.search() 用於檢索字串中指定的子字串,或檢索與政策表示式相匹配的子字串,並返回子串的起始位置。 檢索就是獲取 下標 位置 找不到就是 -1 var str = "Visit Runoob!";  v

JS表示式和replace二三事

引言 最近一段時間認真研究了一下正則表示式,這東西這是入門容易,越學越難,奇幻怪異的寫法,各種變數配比。之前只是用的時候在網上現找,但是沒想到,正則的水這麼深,不去深入瞭解一下,還是不行,否則寫出來的正則表示式非但不能完成任務,還有可能調入回溯陷阱,這次是搞明白了捕獲應用和