1

オンラインでいくつかのコードを見つけました (stackoverflow https://stackoverflow.com/a/5774234/150062 )、まさに必要なことを実行します。しかし、私はそれを実行できないようです。エラーが発生する"'/(\\d+)\\s*(second|min|minute|hour)/g' is not a function (evaluating 'regex(s)')";

var timespanMillis = (function() {
  var tMillis = {
    second: 1000,
    min: 60 * 1000,
    minute: 60 * 1000,
    hour: 60 * 60 * 1000 // etc.
  };
  return function(s) {
    var regex = /(\d+)\s*(second|min|minute|hour)/g, ms=0, m, x;
    while (m = regex(s)) {
      x = Number(m[1]) * (tMillis[m[2]]||0);
      ms += x;
    }
    return x ? ms : NaN;
  };
})();

regex()この機能も聞いたことがありませんか?それは別のものであると思われますか?

4

2 に答える 2

4

execこれは以前は可能でしたが、まったく同じメカニズムの呼び出しを次のように置き換えることができます。

m = regex.exec(s)

http://whereswalden.com/2011/03/06/javascript-change-in-firefox-5-not-4-and-in-other-browsers-regular-expressions-cant-be-called-like-functionsを参照してください/

于 2012-08-21T18:54:28.503 に答える
1

おもう

regex.match(value)//or regx.exec(value)

あなたが探している機能です

regex は関数ではなく RegExp オブジェクトです。正規表現のメソッドと機能のリストメソッドと使用法

このような tryout .test() メソッドよりも一致が機能しない場合

var match = /sample/.test("Sample text")

また

var match = /s(amp)le/i.exec("Sample text")
于 2012-08-21T18:48:00.587 に答える