javascript - この正規表現はなぜ 1 つの文字列しか置き換えられないのですか? ?
仅有的幸福
仅有的幸福 2017-06-05 11:13:51
0
4
899

二重中括弧内に含まれる文字列を実際の値に置き換えたいのですが、置き換えられるのは 1 つだけです。なぜですか?

リーリー
仅有的幸福
仅有的幸福

全員に返信(4)
遥远的她

広告

いいねを押す +0
  • 返事 だーだーだー
    遥远的她 著者 2017-06-05 14:04:16
  • 返事 74777
    遥远的她 著者 2017-06-05 14:04:28
漂亮男人

String.replace はパラメータとして正規表現もサポートしており、書き換えられます

リーリー

独自のメソッドを使用する場合は、グローバルパラメータ g をキャンセルする必要があります

リーリー
いいねを押す +0
某草草

RegExp オブジェクトには、一个整数,标示开始下一次匹配的字符位置。。当exec第一次执行成功后,lastIndex为匹配项位置+1。正因为这样,再次调用才会会获得下一个匹配项。
回到你这个例子,第一次循环后,re的lastIndex为40,而此时tpl变为了tpl="/cube_xinbao_dial_result/1/{{query}}"显然你要匹配的query の位置が 40 より前であることを表す lastIndex という属性があるため、再度照合すると失敗し、exec は null を返し、ループが飛び出します。

いいねを押す +0
淡淡烟草味

リーリー

結果を出力する

リーリー
いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート