javascript – (?=exp) positive Vorhersage-Lookahead-Behauptung mit Nullbreite, wie man sie verwendet und warum sie nicht funktioniert
阿神
阿神 2017-05-19 10:27:51
0
5
641

'

Ich erwarte, 123 in width="123" aus einem String zu extrahieren

Lass mich dir zuerst sagen, was mir einfällt. Aber diese Operation fühlt sich seltsam an. Gibt es eine coole Möglichkeit

Verwenden Sie Ersetzen und erhalten Sie es im Rückruf

'

Oder wie @ars_qu

'
阿神
阿神

闭关修行中......

Antworte allen (5)
小葫芦

js 对断言支持很差,直接用匹配组就好了:

'
    習慣沉默

    JS不支持反向预查

    它目前支持零宽断言的正向预查,即找出屁股后跟着指定词(或其他条件)结尾的文本。 --JS目前支持;

    你问题中的需求想要找 前面有指定词(或其他条件)的文本。 --JS目前不支持.

    P.S.:即使支持,你的写法也不对! 如果你想找width后的数字,需要用的是反向预查,正确的写法(在C#或PHP中)是
    /(?<=width)\d+/。 注意多了一个小于号。
    如果你想找width前面的数字,比如字符串是这样的"168width",这是用到的是正向预查,写法为/\d+(?=width)/

    标准做法 - 捕获组

    使用正则的捕获是你这种场景下的最优方法。

    '
              
              Wie+0
              
             
      大家讲道理
      用捕获,取RegExp.$1 var str = ''; var reg = /.*(width\=\"(.*)\")\s.*/ reg.test(str) console.log(reg.test(str), RegExp.$1, RegExp.$2)
        我想大声告诉你

        直接width=".*?"然后匹配数字不行吗

          小葫芦

          js好像不支持部分正则,比如零宽断言....

            Neueste Downloads
            Mehr>
            Web-Effekte
            Quellcode der Website
            Website-Materialien
            Frontend-Vorlage
            Über uns Haftungsausschluss Sitemap
            Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!