ホームページ >ウェブフロントエンド >jsチュートリアル >JavaScript 正規表現で負の後読みをシミュレートするにはどうすればよいですか?

JavaScript 正規表現で負の後読みをシミュレートするにはどうすればよいですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-12-14 15:48:11696ブラウズ

How Can I Simulate Negative Lookbehind in JavaScript Regular Expressions?

JavaScript の負の後読みと同等

特定の文字セットで始まらない文字列と一致する負の後読みは、 では直接サポートされていません。 JavaScript の正規表現。ただし、同様の結果を達成する別のアプローチもあります。

肯定先読みと文字列反転

JavaScript は肯定先読み (?=) をサポートしているため、1 つの方法には次のものが含まれます。

  1. 入力文字列を反転します。
  2. 正の先読みを使用した反転正規表現。
  3. を反転して再フォーマットします。

例:

const reverse = s => s.split('').reverse().join('');
const regexp = /m(?!([abcdefg]))/;

test(['jim', 'm', 'jam'], regexp);

function test(strings, regexp) {
  strings.map(reverse).forEach((s, i) => {
    match = regexp.test(s);
    console.log(strings[i], match, 'Token: ', match ? reverse(regexp.exec(s)[0]) : 'Ø');
  });
}

結果:

jim true Token: m
m true Token: m
jam false Token: Ø

後読みアサーションサポート (以来2018)

2018 年に、否定後読みを含む後読みアサーションが ECMAScript 言語仕様の一部になりました。これらは次のように使用できます:

負の後読み:

(?<!...)

正後読み:

(?<=...)

例:

「max-height」に一致するが「line-height」には一致しない場合:

regexp = /thgieh(?!(-enil))/;
test(['max-height', 'line-height'], regexp);

結果:

max-height true Token: height
line-height false Token: Ø

以上がJavaScript 正規表現で負の後読みをシミュレートするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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