如何使用RegExp更简单地编写此条件?
if (current === '+' || current === '-' || current === '*' || current === '/')
答案 0 :(得分:6)
如果MemoryError
始终是一个字符,
正则表达式
current
ES6,没有正则表达式
if (/[+*/-]/.test(current))
非ES6,没有正则表达式
if ('+*/-'.contains(current))
非ES6,没有正则表达式,简短
if ('+*/-'.indexOf(current) !== -1)
如果没有,
正则表达式
if (~'+*/-'.indexOf(current))
ES6,没有正则表达式
if (/^[+*/-]$/.test(current))
非ES6,没有正则表达式
if ([...'+*/-'].contains(current))
答案 1 :(得分:0)
if(/[+*/-]/.test(current)){
//do something
}
逃避这些字符,因为它们在正则表达式中具有特殊含义。
答案 2 :(得分:0)
您使用字符类和正则表达式的test
函数:
if (/^[-+*/]$/.test(current)) {
// ...
}
请注意^
和$
断言(输入的开头和结尾),以便"-+"
不匹配。
示例:
var rex = /^[-+*/]$/;
["p", "+", "-", "-+"].forEach(function(current) {
console.log(current, rex.test(current));
});