Javascript &引用;无法读取属性';长度';“无效”的定义;正则表达式结果的定义
我不明白为什么在我尝试执行这个简单的JS代码后会出现错误:Javascript &引用;无法读取属性';长度';“无效”的定义;正则表达式结果的定义,javascript,regex,Javascript,Regex,我不明白为什么在我尝试执行这个简单的JS代码后会出现错误: var str=“x*1/2”; 变量patt1=/(*|\/)/g; var结果=str.match(第1部分); 文件。写入(结果。长度); 我不明白为什么我在尝试执行此操作后会出错 简单JS代码 发生这种情况是因为您的模式无法与提供的输入相匹配“x*1/2”。所以match返回null。考虑下面的片段,在这里我们使用一个无意义的模式,但是它可以匹配这个输入。 var str=“x*1/2”; 变量patt1=/([*]?\
var str=“x*1/2”;
变量patt1=/(*|\/)/g;
var结果=str.match(第1部分);
文件。写入(结果。长度);
我不明白为什么我在尝试执行此操作后会出错
简单JS代码
发生这种情况是因为您的模式无法与提供的输入相匹配“x*1/2”
。所以match
返回null
。考虑下面的片段,在这里我们使用一个无意义的模式,但是它可以匹配这个输入。
var str=“x*1/2”;
变量patt1=/([*]?\/)/g;
var结果=str.match(第1部分);
console.log(结果.长度)
因为如果没有匹配项,则match
返回null
。您的正则表达式模式也无效。@AdamAzad:有效。它寻找零个或多个空格,或者一个空格后跟一个斜杠。(我肯定这不是OP想要的,但是…@t.J.Crowder,我想OP想要做数学,应该转义*
?如果我错了,请纠正我。@s.dragos:查阅正则表达式教程。这里是。您可以引导OP不使用文档。write
:)@AdamAzad文档。这里使用write
仅用于生成结果。我不主张使用这种方法:)根据您的代码,我找到了适合我的案例的正则表达式:patt1=/([\/]|[*])/g代码>现在可以了。谢谢Christos。@Christos[\/]
完全等同于\/
。周围的括号是多余的<代码>[*]
可以像\*
一样轻松重写。