一個正則表達式,我想測試一個字符串中的正則表達式
^(?:\(|%[0-9]+)(?:\s+|%[0-9]+|\) and+|\) or+|\)+|and|or|\()*$
我已經測試過此正則表達式針對不同的場景和我需要工作正常的字符串。我用http://gskinner.com/RegExr/來測試它。
當我嘗試在javascript中使用它時,它給了我運行時錯誤,說正則表達式無效。我使用下面的代碼測試反對在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|\() * $/;
總是返回假。請幫忙。
RegExr使用Regex的actionscript(flash)實現。這與Regex的JS實現(或正則表達式的PERL/PHP實現)不一樣。您可以使用[regex101](http://regex101.com)更改實現(查看PCRE的頂部 - 將其更改爲javascript)並測試JS正則表達式。 – h2ooooooo