首頁 >web前端 >js教程 >JS前向後瞻正規表示式定義與用法範例

JS前向後瞻正規表示式定義與用法範例

高洛峰
高洛峰原創
2017-01-09 15:46:311173瀏覽

本文實例講述了JS前向後瞻正規表示式定義與用法。分享給大家供大家參考,具體如下:

定義

x(?=y) 匹配'x'僅僅當'x'後面跟著'y'.這種叫做正向肯定查找。

比如,/Jack(?=Sprat)/會配對到'Jack'僅僅當它後面跟著'Sprat'。 /Jack(?=Sprat|Frost)/匹配‘Jack'僅僅當它後面跟著'Sprat'或者是‘Frost'。但是‘Sprat'和‘Frost'都不是匹配結果的一部分。

x(?!y) 匹配'x'僅僅當'x'後面不跟著'y',這個叫做正向否定查找。

例如,/d+(?!.)/匹配一個數字僅僅當這個數字後面沒有跟小數點的時候。正規表示式/d+(?!.)/.exec("3.141")符合'141'但不是'3.141'

form https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/ Guide/Regular_Expressions

範例:

<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 - 不带子表达式匹配 */
  var testReg = /^windows .*$/
  var result = testStr.match(testReg);
  console.log("/^windows .*$/="+result) // /^windows .*$/=windows 95
  /* 2 - 带子表达式匹配 */
  var testReg = /^windows (.*)$/
  var result = testStr.match(testReg);
  console.log("/^windows (.*)$/="+result) // /^windows (.*)$/=windows 95,95
  /* 3 - 带子表达式,不记录其匹配结果 */
  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 - 前瞻匹配,匹配位置,负匹配 */
  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>

希望本文所述對大家JavaScript程式設計有所幫助。

更多JS前向後瞻正規表示式定義與用法範例相關文章請關注PHP中文網!


陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn