JS前向后瞻正則表達(dá)式定義與用法示例
本文實例講述了JS前向后瞻正則表達(dá)式定義與用法。分享給大家供大家參考,具體如下:
定義
x(?=y) 匹配'x'僅僅當(dāng)'x'后面跟著'y'.這種叫做正向肯定查找。
比如,/Jack(?=Sprat)/會匹配到'Jack'僅僅當(dāng)它后面跟著'Sprat'。/Jack(?=Sprat|Frost)/匹配‘Jack'僅僅當(dāng)它后面跟著'Sprat'或者是‘Frost'。但是‘Sprat'和‘Frost'都不是匹配結(jié)果的一部分。
x(?!y) 匹配'x'僅僅當(dāng)'x'后面不跟著'y',這個叫做正向否定查找。
比如,/\d+(?!\.)/匹配一個數(shù)字僅僅當(dāng)這個數(shù)字后面沒有跟小數(shù)點的時候。正則表達(dá)式/\d+(?!\.)/.exec("3.141")匹配‘141'但是不是‘3.141'
form https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Guide/Regular_Expressions
前面這篇http://www.dbjr.com.cn/article/84839.htm 解釋的比較好懂。
例子:
<html> <head> </head> <body> <input id="test" type="text" value="" /> <input id="test" type="text" value="" /> <input id="test" type="text" value="" /> <input id="test" type="text" value="" /> <input id="test" type="text" value="" /> <script> var testStr = "windows 95" /* 1 - 不帶子表達(dá)式匹配 */ var testReg = /^windows .*$/ var result = testStr.match(testReg); console.log("/^windows .*$/="+result) // /^windows .*$/=windows 95 /* 2 - 帶子表達(dá)式匹配 */ var testReg = /^windows (.*)$/ var result = testStr.match(testReg); console.log("/^windows (.*)$/="+result) // /^windows (.*)$/=windows 95,95 /* 3 - 帶子表達(dá)式,不記錄其匹配結(jié)果 */ var testReg = /^windows (?:.*)$/ var result = testStr.match(testReg); console.log("/^windows (?:.*)$/="+result) // /^windows (?:.*)$/=windows 95 /* 4 - 前瞻匹配,匹配位置,正匹配 */ var testReg = /^windows (?=95)95$/ var result = testStr.match(testReg); console.log("/^windows (?=.*)$/="+result) // /^windows (?=.*)$/=windows 95 /* 5 - 前瞻匹配,匹配位置,負(fù)匹配 */ var testStr = "windows me" var testReg = /^windows (?!95)me$/ var result = testStr.match(testReg); console.log("/^windows (?!\d*)$/="+result) // /^windows (?!d*)$/=windows me </script> </body> </html>
PS:這里再為大家提供2款非常方便的正則表達(dá)式工具供大家參考使用:
JavaScript正則表達(dá)式在線測試工具:
http://tools.jb51.net/regex/javascript
正則表達(dá)式在線生成工具:
http://tools.jb51.net/regex/create_reg
更多關(guān)于JavaScript相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《JavaScript替換操作技巧總結(jié)》、《JavaScript查找算法技巧總結(jié)》、《JavaScript數(shù)據(jù)結(jié)構(gòu)與算法技巧總結(jié)》、《JavaScript遍歷算法與技巧總結(jié)》、《JavaScript中json操作技巧總結(jié)》、《JavaScript錯誤與調(diào)試技巧總結(jié)》及《JavaScript數(shù)學(xué)運算用法總結(jié)》
希望本文所述對大家JavaScript程序設(shè)計有所幫助。
- javascript正則表達(dá)式模糊匹配IP地址功能示例
- JS正則表達(dá)式之非捕獲分組用法實例分析
- js正則表達(dá)式最長匹配(貪婪匹配)和最短匹配(懶惰匹配)用法分析
- JS正則表達(dá)式修飾符global(/g)用法分析
- JS正則表達(dá)式修飾符中multiline(/m)用法分析
- js正則表達(dá)式實現(xiàn)數(shù)字每隔四位用空格分隔代碼
- JS經(jīng)典正則表達(dá)式筆試題匯總
- js正則函數(shù)match、exec、test、search、replace、split使用介紹集合
- JS正則表達(dá)式大全(整理詳細(xì)且實用)
- JS利用正則配合replace替換指定字符
- js正則表達(dá)式的使用詳解
- js中過濾特殊字符的正則表達(dá)式
- JavaScript正則表達(dá)式exec/g實現(xiàn)多次循環(huán)用法示例
相關(guān)文章
bootstrapValidator 重新啟用提交按鈕的方法
bootstrapValidator 使用中,由于字段檢查等原因,致使提交按鈕失效。如何重新啟用提交按鈕呢?下面小編給大家介紹下bootstrapValidator 重新啟用提交按鈕的方法,需要的朋友可以參考下2017-02-02弱類型語言javascript開發(fā)中的一些坑實例小結(jié)【變量、函數(shù)、數(shù)組、對象、作用域等】
這篇文章主要介紹了弱類型語言javascript開發(fā)中的一些坑,結(jié)合實例形式總結(jié)分析了javascript開發(fā)中關(guān)于變量、函數(shù)、數(shù)組、對象、作用域等相關(guān)知識點常見易錯問題,需要的朋友可以參考下2019-08-08微信公眾號JS-SDK獲取當(dāng)前經(jīng)緯度以及地址信息的方法
最近微信JS-SDK開發(fā)過程中,遇到了獲取坐標(biāo)位置的需求,所以下面這篇文章主要給大家介紹了關(guān)于微信公眾號JS-SDK獲取當(dāng)前經(jīng)緯度以及地址信息的相關(guān)資料,需要的朋友可以參考下2022-06-06讓回調(diào)函數(shù) showResponse 也帶上參數(shù)的代碼
讓回調(diào)函數(shù) showResponse 也帶上參數(shù)的代碼...2007-08-08bootstrap table實現(xiàn)x-editable的行單元格編輯及解決數(shù)據(jù)Empty和支持多樣式問題
本文著重解決x-editable編輯的數(shù)據(jù)動態(tài)添加和顯示數(shù)據(jù)為Empty的問題,還有給表格單元格的內(nèi)容設(shè)置多樣式,使得顯示多樣化,需要的朋友可以參考下2017-08-08淺談webpack打包過程中因為圖片的路徑導(dǎo)致的問題
下面小編就為大家分享一篇淺談webpack打包過程中因為圖片的路徑導(dǎo)致的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-02-02