ホームページ >ウェブフロントエンド >jsチュートリアル >JS の前方正規表現と後方正規表現の定義と使用例

JS の前方正規表現と後方正規表現の定義と使用例

高洛峰
高洛峰オリジナル
2017-01-09 15:46:311173ブラウズ

この記事の例では、JS 前方参照正規表現の定義と使用法について説明します。参考のために皆さんと共有してください。詳細は次のとおりです:

定義

x(?=y) は、'x' の後に 'y' が続く場合にのみ 'x' と一致します。これは、前方ポジティブ検索と呼ばれます。

たとえば、/Jack(?=Sprat)/ は、その後に「Sprat」が続く場合にのみ「Jack」と一致します。 /Jack(?=Sprat|Frost)/ は、「Sprat」または「Frost」が続く場合にのみ「Jack」と一致します。しかし、「スプラット」も「フロスト」も試合には含まれていません。

x(?!y) は、「x」の後に「y」が続かない場合にのみ「x」と一致します。これは、前方否定検索と呼ばれます。

たとえば、/d+(?!.)/ は、数値の後に小数点が続かない場合にのみ数値と一致します。正規表現 /d+(?!.)/.exec("3.141") は '141' に一致しますが、'3.141' には一致しません

フォーム 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 中国語 Web サイトに注目してください。


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。