我有以下代码 - 它所做的一切都是获取文本框中的值,对字符串执行正则表达式,然后计算字符串值中有多少星号:
var textBoxValue = $(textbox).val();
function countHowManyWildCards(stringToSearch) {
var regex = new RegExp(/\*/g);
var count = stringToSearch.toString().match(regex).length;
return count;
}
if (countHowManyWildCards(textBoxValue) > 1) {
//Other code
}
代码似乎可以工作,但出现错误:
stringToSearch.toString().match(regex).length;
错误状态:
Unable to get property 'length' of undefined or null reference
但我不清楚为什么代码有效,但我仍然有这个错误?有人可以告诉我为什么会这样吗?
最佳答案
由于 match
失败并且没有返回任何数组,因此调用 .length
将引发该错误。
要解决此问题,您可以使用:
var count = (stringToSearch.match(regex) || []).length;
处理匹配
失败的情况。 || []
将在匹配失败时返回一个空数组,[].length
将得到 0
。
关于javascript - 无法获取未定义或空引用的属性 'length',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31875158/