我正在尝试用ES6创建新功能。
我正在尝试打高尔夫球。
这是我到目前为止所做的:
F=>(s){/[^aeiou]{3}|[jqxz]/.test(s)};
但是这会导致一个神秘的错误:
SyntaxError: missing ; before statement
如果我试着没有大括号:
F=>(s)/[^aeiou]{3}|[jqxz]/.test(s);
我收到了以下错误:
SyntaxError: expected expression, got '^'
正则表达式可以自行运行。
你可以自己试试。
有人可以告诉我我做错了吗?
我在最新的Firefox版本(目前版本35.0.1)上测试了这个。
我直接将它用于控制台:这个没有Firebug!
答案 0 :(得分:4)
我想你想要
var F = s => /[^aeiou]{3}|[jqxz]/.test(s);
这会创建一个arrow function,它会收到一个参数s
并返回/[^aeiou]{3}|[jqxz]/.test(s)
。
该函数已分配给变量F
。
请注意,您还可以使用在ES5中工作的不太长的替代方案,并且应该执行得更好,因为它不会在每次调用时重新创建正则表达式对象。
var F = /(?:)/.test.bind(/[^aeiou]{3}|[jqxz]/);