Javascript ошибка регулярное выражение не функция?
Я нашел некоторый код онлайн (stackru /questions/25504331/javascript-preobrazovanie-stroki-te-1-chas-2-minutyi-do-vremeni-v-sekundah/25504340#25504340), который делает именно то, что мне нужно. Но я не могу заставить его работать. Я получаю ошибку "'/(\\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()
функция тоже? Это должно быть что-то еще?
2 ответа
Решение
Раньше это было возможно, вы можете заменить звонок на exec
для точно такого же механизма:
m = regex.exec(s)
Я думаю
regex.match(value)//or regx.exec(value)
это функция, которую вы ищете
регулярное выражение является объектом RegExp, а не функцией. здесь список методов и функций методов и использования регулярных выражений
если совпадение не работает, то попробуйте метод.test(), как этот
var match = /sample/.test("Sample text")
или же
var match = /s(amp)le/i.exec("Sample text")