[英]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\\\\-\\.,:\\+\\*\\(\\)=\\\\'&_]
在正則表達式中對特殊字符[\\^$.|?*+(){}
添加反斜杠會抑制其特殊含義,從而使您可以按字面意義使用它們。
在正則表達式中,您需要轉義11個字符:左方括號[,反斜杠\\,脫字號^,美元符號$,句點或點。,豎線或豎線符號|,問號?,星號或星號*,加號+,左括號(和右括號)。
您需要在正則表達式中轉義一些字符。 因此,它看起來像:
var regex = /[a-zA-Z0-9\-\.,:\+\*\(\)=\\'&_]/; // Note the backslashes
括號,加號,星號和反斜杠是在正則表達式中具有特殊含義的許多字符中的一些。 為了從字面上包括它們,您需要使用反斜杠將其轉義。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.