我对正则表达式使用了match函数。
我使用的代码是
if(val.match(/^s+$/) || val == "" )
但是JavaScript错误与
"val.match is not function"
我找不到问题出在哪里?
发布于 2011-03-05 00:47:13
我想说val不是一个字符串。
对于以下代码,我收到"val.match is not function“错误
var val=12;
if(val.match(/^s+$/) || val == ""){
document.write("success: " + val);
}
如果显式转换为字符串(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);
}
发布于 2014-12-24 03:16:33
问题是: val不是字符串
我可以想到两个选项: 1)转换为字符串:如果您确定val必须为字符串,这可能是个不错的选择
“与上面的答案相同”
var val=12;
if(String(val).match(/^s+$/) || val == ""){
document.write("success: " + val);
}
2)跳过这一行:在我的例子中,最好只检查val类型,如果不是string,就跳过它,因为无论如何运行"match“函数都不是一个好主意。
val = 12;
if( val.match) {
if(val.match(/^s+$/) || val == "" ) {
document.write("success: " + val);
}
} else {
document.write("not a string: " + val);
}
发布于 2011-03-12 02:46:51
注意:按照上面我的评论中的建议来回答这个问题。
一定要确保val是定义的,并且是一个字符串。此外,我猜这是一个打字错误,您的正则表达式中没有's‘前面的斜杠。如果是这种情况,您可以将If测试替换为" if (val.match(/^\s*$)“
https://stackoverflow.com/questions/4882691
复制相似问题