Javascript错误正则表达式不是函数

Javascript error regex not a function?

本文关键字:函数 正则表达式 错误 Javascript      更新时间:2023-09-26

我在网上找到了一些代码(stackoverflowhttps://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()函数?它应该是别的东西吗?

这在过去是可能的,您可以将调用替换为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/

我认为

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")