开发者问题收集

无法在 javascript for 循环中读取 null 的属性“length”

2012-04-17
33376

我正在尝试制作像堆栈溢出一样的降价编辑器。

如果我实际上没有键入星号和http://将短语包含在文本。如果我仅键入包含短语的星号,则该错误是指以下行: if(linkify.length!== 0)

这是a jsfiddle 向您展示我的意思。

这是我的html:

191381634 < /code>

这是我的JS:

874864442

任何帮助都将不胜感激。

2个回答

不要使用 match 函数(如果字符串与提供的正则表达式不匹配则返回 null),而是使用 test 函数(返回 true/false),然后如果需要,可以使用 match 函数。

基本上,您正在执行 null.length ,这显然是无效的,因为 match 返回了 null

或者您可以在检查长度之前执行 null 检查,然后只执行一次正则表达式匹配。

if(linkify!==null && linkify.length!== 0)
{
  //do smthing
}
Baz1nga
2012-04-17

当文本中没有“http://”匹配时,“linkify”为空,因此您需要测试该条件:

if(linkify && linkify.length)
jimw
2012-04-17