javascript
JavaScript 正则表达式 学习笔记(一)
2019獨角獸企業重金招聘Python工程師標準>>>
名詞解釋
正則表達式: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
結束語:這只是筆記(一).... 以上內容總結來自經典網站:w3school
轉載于:https://my.oschina.net/u/2427564/blog/3015583
總結
以上是生活随笔為你收集整理的JavaScript 正则表达式 学习笔记(一)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: BottomNavigationView
- 下一篇: innodb Cardinality学习