正在寻找匹配所有运营商的正则表达式:+ - * / => < > =< =& | %! ^()

时间:2015-03-02 18:27:29

标签: javascript regex

有没有办法使用正则表达式来查看给定字符串是否是上述运算符中的任何一个,而没有别的。示例

var a = "3 + 2" //match fail
var b = ">=" //match pass

regEx测试必须确认我的给定字符串是否只是上述运算符之一。它可能不是运营商和其他东西的组合。

是否只有运营商的标准regEx表达式?

2 个答案:

答案 0 :(得分:6)

只需

/^(\+|-|\*|\/|=|>|<|>=|<=|&|\||%|!|\^|\(|\))$/

或者,为了可读性和可维护性:

var ops = ['+', '-', '*', '/', '=', '<', '>', '<=', '>=', '&', '|', '^', '(', ')'];
var regexp = new RegExp(
    '^(' +
    ops.map(function(op) { return '\\' + op; }).join('|') +
    + ')$');

答案 1 :(得分:3)

^(\+|-|\*|/|=|>|<|>=|<=|&|\||%|!|\^|\(|\))$

Regular expression visualization

Debuggex Demo