Javascript &引用;无法读取属性';长度';“无效”的定义;正则表达式结果的定义

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=/([*]?\

我不明白为什么在我尝试执行这个简单的JS代码后会出现错误:


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
[\/]
完全等同于
\/
。周围的括号是多余的<代码>[*]
可以像
\*
一样轻松重写。