検索

ホームページ  >  に質問  >  本文

JavaScript - (?=exp) ゼロ幅の正の予測先読みアサーション、その使用方法、および機能しない理由

'<img abc 123 width="168" height="300"'.match(/(?=(width="))168/)

width="123" にある 123 を文字列から抽出したいと考えています

まずは思いつくことをお話しさせてください。しかし、この操作は奇妙に感じます。何か良い方法はありますか

replace を使用してコールバックで取得します;

リーリー

または @ars_qu

のように リーリー
阿神阿神2735日前680

全員に返信(5)返信します

  • 高洛峰

    高洛峰2017-05-19 10:29:51

    js はアサーションのサポートが不十分なので、一致するグループを直接使用してください:

    リーリー

    返事
    0
  • 習慣沉默

    習慣沉默2017-05-19 10:29:51

    JS は逆プリフェッチをサポートしていません

    現在、ゼロ幅アサーションの前方参照、つまり、指定された単語 (または他の条件) で終わるテキストの検索をサポートしています。 --JS は現在サポートされています;

    あなたの質問の要件は、指定された単語(または他の条件)が前にあるテキストを検索することです。 --JS は現在サポートされていません。

    追伸: たとえ支持するとしても、あなたの書き方は間違っています! width の後の数値を見つけたい場合は、逆引き を使用する必要があります (C# または PHP で)
    /(?<=width)d+/ です。 。 余分な不等号に注目してください。 /(?<=width)d+/。 注意多了一个小于号。
    如果你想找width前面的数字,比如字符串是这样的"168width",这是用到的是正向预查,写法为 /d+(?=width)/幅の前の数字を見つけたい場合、たとえば「168width」のような文字列では、

    前方参照

    を使用します。これは、/d+(?=width)/

    標準的な実践 - グループのキャプチャ

    🎜通常のキャプチャを使用することが、シナリオに最適な方法です。 🎜 リーリー

    返事
    0
  • 大家讲道理

    大家讲道理2017-05-19 10:29:51

    リーリー

    返事
    0
  • 我想大声告诉你

    我想大声告诉你2017-05-19 10:29:51

    width=".* を使用して数字を一致させることはできませんか?"

    返事
    0
  • 高洛峰

    高洛峰2017-05-19 10:29:51

    js はゼロ幅アサーションなどの一部の正規表現をサポートしていないようです....

    返事
    0
  • キャンセル返事