如何在javascript正则表达式中匹配$?

时间:2017-06-15 15:13:26

标签: javascript angularjs regex

我正在使用其他人的代码来构建前端过滤器以生成对数据库的查询。我需要构建像:

这样的操作
var operations = {
    "$and" : "and",
    "$or"  : "or",
    "$eq": "equal to ( = )",
    "$ne": "not equal ( != )",
    "$gt": "greater than ( > )",
    "$lt": "less than ( < )",
    "$gte": "gerater than or equal to ( >= )",
    "$lte": "less than or equal to ( <= )"
}

然而,当带有“$”的键时,它不会显示ng-options,而是显示没有“$”的情况。我在想,可能它受RegExp的影响,所以我发现有两部分代码包括RegExp: 第一:

var currIndexTemp = query.expression ? query.expression.match(/[^A-Za-z()]/g) : 0;

第二:

var expArray = expression.split(/((?:\(|\)|[A-Z]+|\d+))/g);

我不熟悉RegExp,任何人都可以帮助诊断问题?提前谢谢!

1 个答案:

答案 0 :(得分:0)

美元符号是一个特殊的控制字符,无法按字面匹配(您需要将其转义)。

要匹配,说$eq你可以使用正则表达式:

/\$eq/
 ^ escape $

我希望这可以帮助你,因为我没有真正得到你写的正则表达式。他们完全不同,你的问题没有解释。也许不同地问你想要达到什么目标?