簡體   English   中英

如何在正則表達式extjs中使用'\\'

[英]How to use '\' in the regular expression extjs

我正在使用以下正則表達式:[a-zA-Z0-9 \\-。,:+ *()= \\'&_],但是我遇到了類似以下錯誤:''unerminated character class'error in this expression'::

演示代碼:

Ext.getCmp('field2').addListener({
        beforequery: function (e) {
            if (e.query && e.query.indexOf('?') != -1) {
                var temp = '';
                for(var i=0;i<e.query.length;i++){
                    temp = temp + '['+e.query[i]+ ']';
                }
                e.cancel = true;
                var query = new RegExp(String.format('^{0}',temp.replace(/\?/g, 'a-zA-Z0-9\.,:\+*()=\'&_-\\')));
                this.expand();
                this.store.clearFilter(true);
                this.store.filter(this.displayField, query);
            }
        }
    });

錯誤:

1.請有人告訴我這是怎么回事,主要是反斜杠。

2.當我們在組合框中輸入所需的字符時,它們會被自動選中..因此,當我們要輸入新字符時,必須按側箭頭,否則將刪除其余字符...

再次感謝,

拉吉

我認為您必須逃避角色類中的某些項目。 像您的反斜杠,星號,加號,圓括號和句號一樣。

像這樣的東西[a-zA-Z0-9\\\\-\\.,:\\+\\*\\(\\)=\\\\'&_]

在正則表達式中對特殊字符[\\^$.|?*+(){}添加反斜杠會抑制其特殊含義,從而使您可以按字面意義使用它們。

http://www.regular-expressions.info/reference.html

在正則表達式中,您需要轉義11個字符:左方括號[,反斜杠\\,脫字號^,美元符號$,句點或點。,豎線或豎線符號|,問號?,星號或星號*,加號+,左括號(和右括號)。

您需要在正則表達式中轉義一些字符。 因此,它看起來像:

var regex = /[a-zA-Z0-9\-\.,:\+\*\(\)=\\'&_]/;  // Note the backslashes

括號,加號,星號和反斜杠是在正則表達式中具有特殊含義的許多字符中的一些。 為了從字面上包括它們,您需要使用反斜杠將其轉義。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM