1. 程式人生 > >JavaScript中正則表示式常見使用函式

JavaScript中正則表示式常見使用函式

最近越來越感覺到正則表示式的強大,可以簡化很多程式碼。並且正則表示式入門並不是很難。簡單列一下JavaScript中使用正則表示式的一些方法。

//定義幾個會用到的變數
var href = 'baidu.com?where=b5s&a=b';
var regObj = /(\w+)=(\w+)/;
//全域性搜尋
var regObj1 = /(\w+)=(\w+)/g;

正則物件上的方法

1.regObj.test();
  • 返回true或false
regObj.test(href);//true
2.regObj.exec();
  • 每執行一次返回一組結果。
  • 如果是非全域性搜尋,每次執行都返回第一組結果。全域性搜尋,每次返回一組結果,是在上一次匹配的位置後開始匹配的。regObj的lastIndex屬性會修改。當你對一個字串進行搜尋時,如果用它去搜索新的字串,lastIndex會先設定為0。再切回來又會從0開始。
  • 匹配不到返回null,且將lastIndex屬性設為0;
  • 每組的結果是一個數組,注意這個雖然是陣列,但它是包含鍵值對屬性的,可以列印下它的的length看看。[ ‘where=b5s’, ‘where’, ‘b5s’, index: 10, input: ‘baidu.com?where=b5s&a=b’ ];分別是[‘整個正則中匹配的字元’,’第一正則分組匹配的字元’,’第二正則分組匹配的字元’,index:’匹配處的起始位置’,input:’整個原始字串’];
console.log(regObj1.exec(href));//[ 'where=b5s', 'where', 'b5s'
, index: 10, input: 'baidu.com?where=b5s&a=b' ] console.log(regObj1.lastIndex);//19 console.log(regObj1.exec(href));//[ 'a=b', 'a', 'b', index: 20, input: 'baidu.com?where=b5s&a=b' ]

字串方法

1.search
  • 返回第一組匹配的索引。
href.search(regObj1);//10
href.search('a');//1
href.search('abcd');//-1匹配不到
2.match
  • 返回匹配的值的陣列或null。
href.match('123');//null
href.match(regObj1);//[ 'where=b5s', 'a=b' ]
3.split
  • 將字串分割成陣列。中間的分隔符也可以用正則表示式。用在可能有多種分割符的情況
var splitRegObj = /&|\?/;//以&或?分割
href.split(splitRegObj);//[ 'baidu.com', 'where=b5s', 'a=b' ];
4.replace
  • 直接正則替換。
var res = href.replace(/a|c/,'aaaa');//b__idu.com?where=b5s&a=b 單個替換
var res = href.replace(/a|c/g,'aaaa');//b__idu.__om?where=b5s&__=b 全域性替換
var res = href.replace(/(a|c)/g,'$1-$1');//ba-aidu.c-com?where=b5s&a-a=b 對正則分組的反向引用替換
  • 傳入函式替換。
var res = href.replace(regObj1,function(){   
    return 123
});//baidu.com?123&123
  • 它的replace傳入的函式的每個引數的值分別是:每次匹配的字串;正則第一分組匹配;正則第二分組匹配;……正則第N分組匹配;匹配的初始位置;原始輸入值。
var res = href.replace(regObj1,function(match,$1,$2,index,input){ 
    console.log(arguments); //{ '0': 'where=b5s', '1': 'where', '2': 'b5s', '3': 10, '4': 'baidu.com?where=b5s&a=b' };    
});//baidu.com?undefined&undefined  這裡沒給返回值。
  • 其實replace是很強大的一個方法。感覺要全部匹配並對正則分組有一些操作的話比上面的regObj.exec()用起來要方便。比如我們要解析這個url中所有的搜尋條件以鍵值對的形式存入一個物件中。可以這樣操作。
var obj = {};
href.replace(regObj1,function(match,$1,$2){
    obj[$1] = $2;
    return match;//返回匹配的值,即不會修改原始的字串
})
console.log(obj);//{ where: 'b5s', a: 'b' }

其它關鍵詞

  • 正則表示式與編輯器(如Sublime Text)的搭配使用。

相關推薦

JavaScript表示式常見使用函式

最近越來越感覺到正則表示式的強大,可以簡化很多程式碼。並且正則表示式入門並不是很難。簡單列一下JavaScript中使用正則表示式的一些方法。 //定義幾個會用到的變數 var href = 'bai

Python表示式常用函式sub,search,findall,split等使用

1.原生字串r python中字串前面加上 r 表示原生字串,不會轉義。與大多數程式語言相同,正則表示式裡使用"\"作為轉義字元,這就可能造成反斜槓困擾。假如你需要匹配文字中的字元"\",那麼使用程式語言表示的正則表示式裡將需要4個反斜槓"\\":前兩個和後兩個分別用於在程式語言裡轉義成反斜

javascript表示式的基礎語法

前面的話   正則表示式在人們的印象中可能是一堆無法理解的字元,但就是這些符號卻實現了字串的高效操作。通常的情況是,問題本身並不複雜,但沒有正則表示式就成了大問題。javascript中的正則表示式作為相當重要的知識,本文將介紹正則表示式的基礎語法 定義   正則表示式(Regular Expres

詳解Javascript表示式的使用

正則表示式用來處理字串特別好用,在JavaScript中能用到正則表示式的地方有很多,本文對正則表示式基礎知識和Javascript中正則表示式的使用做一個總結。 第一部分簡單列舉了正則表示式在JavaScript中的使用場景;第二部分詳細介紹正則表示式的基礎知識,寫出一些例子方便理解。 本文的內容是

表示式常見函式(爬蟲網頁匹配)

一、區域性匹配(只匹配一個結果)1.re.match()函式  :從源字元的串的開頭進行匹配2.re.search()函式 :在全文中進行檢索並匹配從例子中看區別:import re #string ="apythonhellomypythonisouorpythonend"

Pythonre(表示式)常用函式總結

1  re.match       #嘗試從字串的開始匹配一個模式     re.match的函式原型為:re.match(pattern, string, flags)     第一個引數是正則表示式,這裡為"(\w+)\s",如果匹配成功,則返回一個Match,否則返

Mysql表示式Regexp常見用法

Mysql中Regexp常見用法 模糊匹配,包含特定字串 # 查詢content欄位中包含“車友俱樂部”的記錄 select * from club_content where content regexp '車友俱樂部' # 此時的regexp與lik

Javascript常用表示式以及JS常見表示式筆試題

JS正則表示式,在表單驗證等方面都有應用,下面結合學習經過,整理一些初學 者所需要掌握的一些基本JS正則規則: 1.正則表示式基礎語法練習 (1)校驗郵政編碼(由六位組成) 這裡要注意,不能寫成/

JavaScript表示式、表單驗證、郵箱驗證、函式、HTML DOM)

正則表示式 1.定義:它是由一個字元序列形成的搜尋模式,當在文字中搜索資料時,可以用搜索模式來描述你要查詢的內容。它可以是一個簡單的字元,或一個更復雜的模式。它可用於所有文字搜尋和文字替換操作。 2.Eg:var patt = /youngamber/i

Oracle表示式(及函式)詳解

1、概述     相信大家對正則表示式都不陌生,從linux下的命令到Java等程式語言,正則表示式無處不在,雖然我們實際使用的時候也並不一定太多,但是當我們要處理字串時,它確實是一個強大的工具。     上一篇文章(Oracle中的字串型別及相關函式詳解)中,已

JS利用表示式交換函式的引數位置

某百科中看到一個例子,要用正則表示式將函式foo(a,b,c)中的引數位置換為foo(b,a,c),正好又在複習JS的過程中看到了正則表示式的部分,於是考慮用JS來實現這個功能。 函式的引數同例題中一樣通過 [^,]* 進行匹配,於是寫出正則式: /foo\

【RegExp】JavaScript表達式判斷匹配規則以及常用方法

返回 空字符串 tro true 正則表達式 str 本地 大小 表示範圍 字符串是編程時涉及到的最多的一種數據結構,對字符串進行操作的需求幾乎無處不在。 正則表達式是一種用來匹配字符串的強有力的武器。它的設計思想是用一種描述性的語言來給字符串定義一個規則,凡是符合規則的字

php 表示式詳解

概述 正則表示式是一種描述字串結果的語法規則,是一個特定的格式化模式,可以匹配、替換、擷取匹配的字串。常用的語言基本上都有正則表示式,如JavaScript、java等。其實,只有瞭解一種語言的正則使用,其他語言的正則使用起來,就相對簡單些。文字主要圍繞解決下面問題展開。 有哪些常用的

Python表示式re.match的用法

re.match(pattern, string, flags) 第一個引數是正則表示式,如果匹配成功,則返回一個Match,否則返回一個None; 第二個引數表示要匹配的字串; 第三個引數是標緻位,用於控制正則表示式的匹配方式,如:是否區分大小寫,多行匹配等等。 需要特別注意的是,這個方法並不是完

WPF表示式的部分應用

無論在哪一種語言中,正則表示式在一定程度上都可以簡化程式碼程式設計。以下為在WPF中的部分應用。 如var sql = new System.Text.RegularExpressions.Regex("[\\r\\n]").Replace(str, " "); 表示對str字串中匹配換行符

Python表示式對單個字元,多個字元,匹配邊界等使用

         Regular Expression,正則表示式,又稱正規表示式、正規表示法、正則表示式、規則表示式、常規表示法(英語:Regular Expression,在程式碼中常簡寫為regex、regexp或RE),是電腦科學的一個概

【前端】JavaScript表示式

一、正則表示式(regular expression簡稱res) 1、定義 一個正則表示式就是由普通字元以及特殊字元(稱為元字元)組成的文字模式。該模式描述在查詢文字主體時待匹配的一個或多個字串。正則表示式作為一個模板,將某個字元模式與所搜尋的字串進行匹配。 2、作用 正則表示式

js表示式test()方法

正則表示式即描述字串規則的表示式 /pattern/attrs          /規則/屬性 new RegExp(pattern,attrs) regexObj.test(str)方法:測試正則表示式與指定字串是否匹

PHP 表示式匹配函式 preg_match 與 preg_match_all

preg_match() preg_match() 函式用於進行正則表示式匹配,成功返回 1 ,否則返回 0 。 語法: 1 int preg

java表示式的瞭解與實踐記錄

Pattern pattern = Pattern.compile("^\\S+/q/"); Matcher matcher = pattern.matcher(resultString); String qrcode=""; while(matcher.find()){ String path