Ошибка Javascript: "val.match не является функцией"
Я использовал функцию соответствия для регулярного выражения.
используемый мной код
if(val.match(/^s+$/) || val == "" )
но ошибки javascript с
"val.match is not function"
Я не могу найти, в чем проблема,
заблаговременно
Ответ 1
Я бы сказал, что val не является строкой.
Я получаю ошибку "val.match is not function" для следующих
var val=12;
if(val.match(/^s+$/) || val == ""){
document.write("success: " + val);
}
Ошибка исчезает, если вы явно конвертируете в строку String (val)
var val=12;
if(String(val).match(/^s+$/) || val == ""){
document.write("success: " + val);
}
И если вы используете строку, вам не нужно делать преобразование
var val="sss";
if(val.match(/^s+$/) || val == ""){
document.write("success: " + val);
}
Ответ 2
проблема заключается в следующем: val не является строкой
Я могу представить два варианта
1) конвертировать в строку: может быть хорошим вариантом, если вы уверены, что val должен быть строкой
"То же, что и выше, ответ"
var val=12;
if(String(val).match(/^s+$/) || val == ""){
document.write("success: " + val);
}
Ответ 3
ПРИМЕЧАНИЕ: сделайте этот ответ, как было предложено выше, из моего комментария.
Определенно убедитесь, что значение val определено и строка. Кроме того, я предполагаю, что это опечатка, что у вас нет косой черты перед "s" в вашем регулярном выражении. Если это так, вы можете заменить свой тест if "if (val.match(/^\s * $)"