1. 程式人生 > >JavaScript 正則表示式 學習筆記(一)

JavaScript 正則表示式 學習筆記(一)

名詞解釋

正則表示式:Regular Expression,在程式碼中常簡寫為RegEx、RegExp或RE。

使用方法

JS中主要有兩種使用正則表示式的方法:建立RegExp物件方法、直接量方法。

方法一:建立RegExp物件

物件宣告:

new RegExp(pattern, attributes);

pattern:一個正則表示式字串;

attributes:檢索模式,包含"g"、"i"、"m"三種。g(global):全域性匹配,i(ignoreCase):不區分大小寫,m(multiline):多行匹配。

使用方法:

RegExp物件有三個方法:compile()、test()、exec()。

1.test()方法:

test()方法返回檢索匹配的結果值,返回值為布林值。

示例程式碼:

// 匹配字元"e"
var re = new RegExp("e");
//test方法返回值為true或false
var result = re.test("The best things in life are free.");
document.write(result);

**輸出結果:**true

2.exec()方法:

exec()方法返回檢索匹配的結果值,返回值為被找到的值,如果沒有發現匹配值則返回null。

示例程式碼:

// 匹配字元"e"
var re = new RegExp("e");
//test方法返回值為true或false
var result = re.exec("The best things in life are free.");
document.write(result);

**輸出結果:**e

3.compile()方法:

compile()方法可重新編譯已被初始化的正則表示式。

示例程式碼:

var re = new RegExp("e");
var result1 = re.test("The best things in life are free.");
document.write(result1);

re.compile("d");

var result2 = re.test("The best things in life are free.");
document.write(result2);

**輸出結果:**truefalse

方法二:直接量語法

簡單點,就是使用String物件內部的四個支援正則表示式的方法來匹配資料。畢竟正則大部分時刻匹配的都是字串嘛~

語法宣告:

/pattern/attributes

使用方法:

一共四個:search()、match()、replace()、split()。其中search()、match()可返回正則匹配結果,而replace()、split()可根據正則匹配結果對字串進行相應的替換或拆分處理。

1.search()方法:

從字串的開始位置檢索,返回匹配的元素第一次出現的位置下標。預設對大小寫敏感。

示例程式碼一(預設檢索,不加attributes):

var string = "A new day has come.";
var result = string.search(/new/);
document.write(result);

**輸出結果:**2

示例程式碼二(預設檢索,改變大小寫):

var string = "A New Day Has Come.";
var result = string.search(/new/);
document.write(result);

輸出結果:-1

示例程式碼三(取消預設檢索,新增attributes忽略大小寫):

var string = "A New Day Has Come.";
var result = string.search(/new/i);
document.write(result);

**輸出結果:**2

2.match()方法:

返回匹配成功的指定值,而非元素位置。

示例程式碼一:

var string = "A New Day Has Come.";
var result = string.match(/[e]/g);/*全域性搜尋所有字元e*/
document.write(result);

**輸出結果:**e,e

示例程式碼二:

var string = "1 plus 2 equals 3";
var result = string.match(/\d/g);/*全域性搜尋所有數字*/
document.write(result);

**輸出結果:**1,2,3

至此,正則匹配返回匹配結果的方法就基本結束了,接下來的replace()和split()方法不會返回匹配結果,一個是根據正則匹配的結果來替換原有字串,一個是根據正則拆分字串。

3.replace()方法:

根據正則(或字串),替換原有字串的部分值。

語法宣告:

stringObject.replace(regexp/substr, replacement)

regexp/substr:正則表示式或字串;

replacement:替換文字。

示例程式碼一:

// 把所有的e替換為E
var string = "A New Day Has Come.";
var result = string.replace(/[e]/g, "E");/*寫成replace(/e/g, "E")也可以*/
document.write(result);

**輸出結果:**A NEw Day Has ComE.

示例程式碼二:

// 單詞互換
var string = "Joe, Jack";
var result = string.replace(/(\w+),\s(\w+)/, "$2, $1");
document.write(result);

**輸出結果:**Jack, Joe

示例程式碼三:

// 將一句話中所有的單詞首字母改為大寫
var string = "A new day has come.";
var result = string.replace(/\b\w+\b/g, function (word) {
    return word.substring(0, 1).toUpperCase() + word.substring(1);
});
document.write(result);

**輸出結果:**A New Day Has Come.

4.split()方法

拆分字串。

語法宣告:

stringObject.split(regexp/substr, maxLength)

regexp/substr:正則表示式或字串;

maxLength(可選引數):返回陣列的最大長度。

示例程式碼:

// 將一句話中所有的單詞分割為陣列
var string = "A new day has come.";
var result = string.split(/\s/, 4);/*或者這麼寫:split(" ", 4)*/
document.write(result);

**輸出結果:**A,new,day,has

結束語:這只是筆記(一).... 以上內容總結來自經典網站:

相關推薦

JavaScript 表示式 學習筆記

名詞解釋 正則表示式:Regular Expression,在程式碼中常簡寫為Re

表示式學習筆記

開始和結束  ^   $ '^' 表示開始  例如:'^the'  表示以 the 開頭的詞 '$' 表示結束  例如:'the$' 表示以 the 結尾的詞 'the' 表示 包含 the 的詞

表示式學習程序re.match()

#正則表示式學習筆記 import re """ .匹配任意字元 除換行符 {n}精確匹配前面n個表示式 \s 匹配任意的空白字元 \w 匹配字母數字及下劃線 .* 匹配任意除換行符之外的字元 {n} 精確匹配n個前面表示式。 + 匹配1個或多個的表示式。 ( )

javascript表達式筆記轉載

lac pre guide evel 如何 個數 doc 關於 特定 在javascript裏面的定義 1、通過RegExp構造函數定義一個正則表達式。第一個參數為正則表達式以字符串傳入,第二個參數為修飾符也以字符串傳入。 例:var caps = new RegExp

JavaScript 封裝插件學習筆記

undefined error 精確 屬性。 根據 rip nbsp 類型 alt 此篇只是筆記,在借鑒、參考、模仿的過程,可能不完整,請多指教! 定義插件名稱要註意命名沖突,防止全局汙染。 1.第一種Javascript對象命名:(Javascript語言是“先解析,後運

JavaScript動畫基礎】學習筆記-- 旋轉箭頭

-- turn 我們 math class pla document new lose 隨著鼠標的移動旋轉箭頭。 requestAnimationFrame 在requestAnimationFrame之前我們可以用setInterval來實現動畫的循環:

表示式 進階-- 匹配多連續字元、位置匹配、子表示式使用

之前一篇博文正則表示式 入門講了下正則表示式的一些基本使用,這次講一下高階的。還是那句話,要多用,才能夠記住並留在你的大腦皮層。 1. 匹配一個或多個連續字元 用+符號, a+,意思是匹配1個或多個

《精通表示式學習筆記

[abc]是a或b或c [a-z?._!]中只有連字元-是元字元,其他都是普通字元 但^在字元組的開頭表示排除,例如[^1-6]匹配除了1到6以外的任何字元 注意:|在字元組中只是一個普通的符號

表示式學習筆記 :e-mail和tel簡單驗證/php

分別在前端和後端實現對錶單(E-mail和 Telphone)的驗證 廢話不多,程式碼如下... 前端實現利用正則表示式對e-mail和telphone的驗證 regex_form_relizea.html檔案 <!DOCTYPE html> <html

學習表達式筆記

括號 之間 都沒有 分組 ont dot 操作 span googl 正則匹配的各種模式 1.擇一匹配(|)   擇一匹配用管道符號(|),也就是豎線表示。代表可以從多個模式中選擇一個,可用於分割正則表達式。例如: ABC | abc 表示即可以匹配 ABC,又可以匹配 a

JavaScript學習筆記

增加 註意 alert 區分大小寫 單行 true 小寫 head ring JavaScript 是一種直譯式、弱類型、內置支持類型語言目的是給HTML頁面增加動態效果。第一部分1.1.1JavaScript語法JavaScript代碼的編寫通過HTML、XHTML文檔執

java表示式學習筆記

本人在開發中使用正則表達的場景並不多,偶爾用一下,學習一波,時間久了就又忘記了,放到部落格中,說不定什麼時候就用到了。   一.正則表示式的語法 這個語法表來自:http://www.runoob.com/java/java-regular-expressions.html

JavaScript學習筆記//更新中

JavaScript學習筆記 - 題目練習 Learning Advanced JavaScript #2: Goal: To be able to understand this function: #3: Some helper method

python表示式學習筆記

正則表示式 學習資源:https://github.com/EbookFoundation/free-programming-books/blob/master/free-programming-books-zh.md 正則表達例子: |    A|B 

以Grep學表示式 學習筆記

基本格式 grep -n -A2 -B3 --color=auto 'the' ./ 搜尋特定字串 grep -n 'the' //含 grep -vn 'the' //不含 grep -in 'the' //含大小寫 利用中括號 [] 來搜尋集合字元 grep -n

JavaScript-X3DOM學習筆記-世界座標

快捷鍵r,可以重置觀察者viewpoint, 滑鼠左鍵是rotation,  中鍵是Pan.右鍵是forward/backward 這是執行效果圖 下面是html原始碼 <html> <head> <meta http-equiv=

JavaScript學習筆記——變數、作用域問題

一、基本型別和引用型別的值 ECMAScript變數包含兩種不同資料型別的值:基本型別值和引用型別值。 基本型別值指儲存在棧記憶體中的簡單資料段,即完全儲存在內容中的一個位置。 引用型別值則指儲存在堆記憶體中的物件,實際上儲存的是一個指標,指向記憶體的另一個位置,該位置儲存物件。 1

JS學習筆記——JavaScript的同步和非同步執行

如有錯誤歡迎指正 JavaScript的裝載和執行有兩種特性:1.載入後馬上執行 2.載入的時候會阻塞後面的js的載入和html文件的載入,可以理解為序列地載入。 因此,當要通過JS對DOM樹進行操作的時候往往會發生查詢不到某一個元素的情況。下面是一個例子: &

JDK8學習筆記初識lambda表示式

       這幾天又學習了一遍關於jdk8中lambda表示式,以前也看過一遍,由於沒怎麼用過,只是看別人程式碼時用過lambda,也沒有做筆記,時間一長就忘的差不多了。為了吸取教訓,這次看了後,做下筆記,供以後參考學習。     j

JS-JavaScript學習筆記

onchange art scrip n) val url 屬性。 write ret javaScript 1.文檔的輸出:document.write() 可輸出字符,表達式,html標簽。函數 2.不論什麽類型和字符串相加,都會被轉換成字符串類型。 比如:v