首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >JavaScript错误:"val.match不是一个函数“

JavaScript错误:"val.match不是一个函数“
EN

Stack Overflow用户
提问于 2011-02-03 13:04:05
回答 3查看 108.5K关注 0票数 52

我对正则表达式使用了match函数。

我使用的代码是

代码语言:javascript
复制
if(val.match(/^s+$/) || val == "" )

但是JavaScript错误与

代码语言:javascript
复制
"val.match is not function"

我找不到问题出在哪里?

EN

回答 3

Stack Overflow用户

发布于 2011-03-05 00:47:13

我想说val不是一个字符串。

对于以下代码,我收到"val.match is not function“错误

代码语言:javascript
复制
var val=12; 
if(val.match(/^s+$/) || val == ""){
   document.write("success: " + val);
}

如果显式转换为字符串(Val),错误就会消失

代码语言:javascript
复制
var val=12; 
if(String(val).match(/^s+$/) || val == ""){
   document.write("success: " + val);
}

如果您使用字符串,则不需要进行转换

代码语言:javascript
复制
var val="sss"; 
if(val.match(/^s+$/) || val == ""){
   document.write("success: " + val);
}
票数 70
EN

Stack Overflow用户

发布于 2014-12-24 03:16:33

问题是: val不是字符串

我可以想到两个选项: 1)转换为字符串:如果您确定val必须为字符串,这可能是个不错的选择

“与上面的答案相同”

代码语言:javascript
复制
var val=12; 
if(String(val).match(/^s+$/) || val == ""){
   document.write("success: " + val);
}

2)跳过这一行:在我的例子中,最好只检查val类型,如果不是string,就跳过它,因为无论如何运行"match“函数都不是一个好主意。

代码语言:javascript
复制
val = 12;
if( val.match) {
  if(val.match(/^s+$/) || val == "" ) {
    document.write("success: " + val);
  }
} else {
    document.write("not a string: " + val);
}

票数 23
EN

Stack Overflow用户

发布于 2011-03-12 02:46:51

注意:按照上面我的评论中的建议来回答这个问题。

一定要确保val是定义的,并且是一个字符串。此外,我猜这是一个打字错误,您的正则表达式中没有's‘前面的斜杠。如果是这种情况,您可以将If测试替换为" if (val.match(/^\s*$)“

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4882691

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档