在Javascript中针对RegEx模式测试字符串

时间:2013-12-09 09:21:47

标签: javascript regex

我正在尝试针对正则表达式测试字符串 ^(?:\(|%[0-9]+)(?:\s+|%[0-9]+|\) and+|\) or+|\)+|and|or|\()*$
我已针对不同的场景测试了这个正则表达式,并且能够很好地满足我的需求。 我用http://gskinner.com/RegExr/来测试它 当我尝试在javascript中使用它时,它给出了运行时错误,说正则表达式无效。我使用以下代码

var pattern = new RegExp("^(?:\(|%[0-9]+)(?:\s+|%[0-9]+|\) and+|\) or+|\)+|and|or|\()*$");
var filterExpress = this.model.FilterExpression();
var result = pattern.test(filterExpress);

当我尝试使用它时如下

var pattern = /^(?:\(|% [0 - 9]+)(?:\s+ |% [0 - 9]+|\) and+|\) or+|\)+ | and | or|\() * $/; 
总是返回false的

。请帮忙。

1 个答案:

答案 0 :(得分:0)

用它来声明你的正则表达式:

re = /^(?:\(|%[0-9]+)(?:\s+|%[0-9]+|\) and+|\) or+|\)+|and|or|\()*$/;

或使用RegExp对象:

var pattern = new RegExp("^(?:\\(|%[0-9]+)(?:\\s+|%[0-9]+|\\) and+|\\) or+|\\)+|and|or|\\()*$");

请记住,您需要在RegExp构造函数中双重转义。