如何让我的正则表达式代码在我的 dojo cellWidget 对象上运行?
How do I get my regular expression code working on my dojo cellWidget object?
如何让我的正则表达式代码在我的 dojo cellWidget 对象上运行?我试图让这个正则表达式在两个地方工作,一个有 IP 地址,另一个只是一个简单的数字字段,值在 0 到 3000 之间,但无论我尝试什么,它似乎都不喜欢任何东西。有时我可以输入一个数字,但我没有收到验证消息,否则我总是会收到关于这两个数字的验证消息。为此我使用 dijit/form/ValidationTextBox
这是我的代码:
{ id: 'numberId', field: 'numberColumn', name: 'Number', width: '150px',
widgetsInCell: true,
navigable: true,
setCellValue: function(gridData, storeData, cellWidget){
var rowIndex = cellWidget.cell.row.index()+1;
var toggle = numberGridx.model.store.get(rowIndex).numberColumn;
cellWidget.numberColumn.set('regExp', "(100)|(0*\d{1,2})");
cellWidget.numberColumn.set('style', "width:115px");
cellWidget.numberColumn.set('invalidMessage', "Dude that won't work!");
},
decorator: function(){
return "<input type='text' data-dojo-type='dijit/form/ValidationTextBox' data-dojo-attach-point='numberColumn' />";
}
},
我的其他 cellWidget 正则表达式代码在这里(尝试了所有这些):
// cellWidget.outProActFeedsDestAddr.set('regExp', "^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$");
// cellWidget.outProActFeedsDestAddr.set('regExp', "m/^([01]?\d\d?|2[0-4]\d|25[0-5])\.([01]?\d\d?|2[0-4]\d|25[0-5])\.([01]?\d\d?|2[0-4]\d|25[0-5])\.([01]?\d\d?|2[0-4]\d|25[0-5])$/");
cellWidget.outProActFeedsDestAddr.set('regExp', "([01]?\d\d?|2[0-4]\d|25[0-5])\.([01]?\d\d?|2[0-4]\d|25[0-5])\.([01]?\d\d?|2[0-4]\d|25[0-5])\.([01]?\d\d?|2[0-4]\d|25[0-5])");
好吧,这无疑是我同事的作品(我曾尝试过类似的东西,但我认为双 '\'s 是解决问题的方法:
"([01]?\d\d?|2[0-4]\d|25[0-5])..."
cellWidget.outProActFeedsDestAddr.set('regExp', "([01]?\d\d?|2[0-4]\d|25[0-5])[.]([01]?\d\d?|2[0-4]\d|25[0-5])[.]([01]?\d\d?|2[0-4]\d|25[0-5])[.]([01]?\d\d?|2[0-4]\d|25[0-5])");
如何让我的正则表达式代码在我的 dojo cellWidget 对象上运行?我试图让这个正则表达式在两个地方工作,一个有 IP 地址,另一个只是一个简单的数字字段,值在 0 到 3000 之间,但无论我尝试什么,它似乎都不喜欢任何东西。有时我可以输入一个数字,但我没有收到验证消息,否则我总是会收到关于这两个数字的验证消息。为此我使用 dijit/form/ValidationTextBox
这是我的代码:
{ id: 'numberId', field: 'numberColumn', name: 'Number', width: '150px',
widgetsInCell: true,
navigable: true,
setCellValue: function(gridData, storeData, cellWidget){
var rowIndex = cellWidget.cell.row.index()+1;
var toggle = numberGridx.model.store.get(rowIndex).numberColumn;
cellWidget.numberColumn.set('regExp', "(100)|(0*\d{1,2})");
cellWidget.numberColumn.set('style', "width:115px");
cellWidget.numberColumn.set('invalidMessage', "Dude that won't work!");
},
decorator: function(){
return "<input type='text' data-dojo-type='dijit/form/ValidationTextBox' data-dojo-attach-point='numberColumn' />";
}
},
我的其他 cellWidget 正则表达式代码在这里(尝试了所有这些):
// cellWidget.outProActFeedsDestAddr.set('regExp', "^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$");
// cellWidget.outProActFeedsDestAddr.set('regExp', "m/^([01]?\d\d?|2[0-4]\d|25[0-5])\.([01]?\d\d?|2[0-4]\d|25[0-5])\.([01]?\d\d?|2[0-4]\d|25[0-5])\.([01]?\d\d?|2[0-4]\d|25[0-5])$/");
cellWidget.outProActFeedsDestAddr.set('regExp', "([01]?\d\d?|2[0-4]\d|25[0-5])\.([01]?\d\d?|2[0-4]\d|25[0-5])\.([01]?\d\d?|2[0-4]\d|25[0-5])\.([01]?\d\d?|2[0-4]\d|25[0-5])");
好吧,这无疑是我同事的作品(我曾尝试过类似的东西,但我认为双 '\'s 是解决问题的方法:
"([01]?\d\d?|2[0-4]\d|25[0-5])..."
cellWidget.outProActFeedsDestAddr.set('regExp', "([01]?\d\d?|2[0-4]\d|25[0-5])[.]([01]?\d\d?|2[0-4]\d|25[0-5])[.]([01]?\d\d?|2[0-4]\d|25[0-5])[.]([01]?\d\d?|2[0-4]\d|25[0-5])");