Подтвердить что ты не робот

Ошибка Javascript: "val.match не является функцией"

Я использовал функцию соответствия для регулярного выражения.

используемый мной код

if(val.match(/^s+$/) || val == "" )

но ошибки javascript с

"val.match is not function"

Я не могу найти, в чем проблема,

заблаговременно

4b9b3361

Ответ 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 * $)"