/**
* 模板属性效验规则
* @author wangting
* @date 2022-2-21
*/
layui.define(['layer','element','form','table','dynamicCondition' ,'tree'],function(exports){
var webUtil = $webUtil;
var Class = function(){
this.MODELNAME = "mdm/CodeClassifyVerifyUser";
this.moduleKey = "CodeClassifyVerifyUser";
this.id = "CodeClassifyVerifyUser";
this.backPath = configData.compatibility? path:configData.mdmService;
this.url = {
controller:'codeClassifyController/'
};
this.getContent=function(){
var that = this;
var filter = "verifyuser_" + that.id;
var html=[
'
',
'
',
'
',
'
',
'
',
'
',
'
',
'
',
'
',
'
',
'
',
'
'
]
return html.join('');
};
this.init=function(){
};
this.showReferDialog=function (options){
var that=this;
if(!options){
options={}
}
if(options.id){
that.id=options.id
}
var target = options.target;
var form = layui.form;
var table = layui.table;
var filter = "verifyuser_" + that.id;
var verifyuserIndex = webUtil.dialog({
title: '属性验证规则',
btn: [],
content: that.getContent(),
resizing: function (layero) {
form.doResize(filter);
},
success: function (layero, layerIndex, classP) {
var easyuiLayout = $('#easyuiLayout_' + filter)
easyuiLayout.css({height: 600, width: 1050})
easyuiLayout.parent().parent().css({margin: '5px'})
easyuiLayout.layout();
form.addItems(filter, [{
field: 'regexp',
title: '正则表达式',
type: 'textarea',
textWidth: 240,
textStyle: 'height:200px;'
}, {
field: 'content',
title: '测试内容',
type: 'textarea',
textWidth: 240,
textStyle: 'height:200px;'
}],
function () {
form.setValues({regexp: options.value}, filter)
webUtil.relocationOpen(classP)
}, {}, {labelWidth: 110});
var tableData = that.getTableData()
table.render({
elem: '#table_' + filter,
id: 'table_' + filter,
height: 585,
limit: -1,
cols: [[{
field: 'name',
title: '表达式',
width: 300
}, {
field: 'description',
title: '使用说明',
width: 310
}]],
data: tableData,
done: function (res, cur, total) {
},
rowDBLClick: function (thisTableFilter, record) {
var regexpValue = form.getValues(filter).regexp;
regexpValue += record.name
form.setValues({regexp: regexpValue}, filter);
}
});
//清除内容
$('.toolbar_' + filter + '_chear').click(function () {
form.setValues({content: '',regexp:''}, filter);
$('.checkMsg_' + filter).text('')
})
//验证
$('.toolbar_' + filter + '_check').click(function () {
var values = form.getValues(filter);
if (values.regexp == '') {
$('.checkMsg_' + filter).text('正则表达式为空').css({color: 'red'})
return;
}
if(values.content=='') {
$('.checkMsg_' + filter).text('测试内容为空').css({color: 'red'})
return;
}
var reg = new RegExp(values.regexp);
if (reg.test(values.content)) {
$('.checkMsg_' + filter).text('检查通过').css({color: 'green'})
} else {
$('.checkMsg_' + filter).text('效验失败').css({color: 'red'})
}
})
//确定
$('.toolbar_'+filter+'_add').click(function (){
if (form.validata(filter)) {
var values = form.getValues(filter, true);
target.setValue(options.filter,options.name,values.regexp,values.regexp,true);
layer.close(verifyuserIndex);
}
})
}
});
}
this.getTableData=function (){
return [{name: '[\u3000\uff01-\uff5f]+', description: '全角符号'},
{name: '[^\u3000\uff01-\uff5f]+', description: '半角符号'},
{name: '(([-|+]{1}[\\d]+℃~[-|+]{1}[\\d]+℃)|无)', description: '温度范围,示例 -55℃~+125℃'},
{name: '[\\d]{15}|[\\d]{18}|[\\d]{17}X', description: '身份证号码(15或18位数字、17位数字X) '},
{name: '男|女|男性|女性', description: '中文性别'},
{name: '[\\d]+', description: '数字'},
{name: '[a-zA-Z]+', description: '字母'},
{name: '[A-Z]+', description: '大写字母'},
{name: '[a-z]+', description: '小写字母'},
{name: '[0-9a-zA-Z]+', description: '字母、数字组合'},
{name: '((0[\\d]{3}-[\\d]{7})|(0[\\d]{2}-[\\d]{8})|([\\d]{7,8}))', description: '电话号码'},
{name: '-?[1-9]\\d*', description: '整数'},
{name: '[1-9]\\d*', description: '正整数'},
{name: '-[1-9]\\d*', description: '负整数'},
{name: '-[1-9]\\d*|0', description: '非正整数(负整数+0)'},
{name: '[1-9]\\d*|0', description: '非负整数(正整数+0)'},
{name: '-?([1-9]\\d*\\.\\d*|0\\.\\d*[1-9]\\d*|0?\\.0+|0)', description: '浮点数'},
{name: '[1-9]\\d*\\.\\d*|0\\.\\d*[1-9]\\d*', description: '正浮点数'},
{name: '-[1-9]\\d*\\.\\d*|0\\.\\d*[1-9]\\d*', description: '负浮点数'},
{name: '[(-([1-9]\\d*\\.\\d*|0\\.\\d*[1-9]\\d*))|0?\\.0+|0', description: '非正浮点数(负浮点数 + 0)'},
{name: '[1-9]\\d*\\.\\d*|0\\.\\d*[1-9]\\d*|0?\\.0+|0', description: '非负浮点数(正浮点数 + 0)'},
{name: 'x', description: '字符 x'},
{name: '\\\\', description: '反斜线字符'},
{name: '\\0n', description: '带有八进制值 0 的字符 n (0 <= n <= 7)'},
{name: '\\0nn', description: '带有八进制值 0 的字符 nn (0 <= n <= 7)'},
{name: '\\0mnn', description: '带有八进制值 0 的字符 mnn(0 <= m <= 3、0 <= n <= 7)'},
{name: '\\xhh', description: '带有十六进制值 0x 的字符 hh'},
{name: '\\uhhhh', description: '带有十六进制值 0x 的字符 hhhh'},
{name: '\\t', description: '制表符 (\'\u0009\')'},
{name: '\\n', description: '新行(换行)符 (\'\u000A\')'},
{name: '\\r', description: '回车符 (\'\u000D\')'},
{name: '\\f', description: '换页符 (\'\u000C\')'},
{name: '\\a', description: '报警 (bell) 符 (\'\u0007\')'},
{name: '\\e', description: '转义符 (\'\u001B\')'},
{name: '\\cx', description: '对应于 x 的控制符'},
{name: '[abc]', description: 'a、b 或 c(简单类)'},
{name: '[^abc]', description: '任何字符,除了 a、b 或 c(否定)'},
{name: '[a-zA-Z]', description: 'a 到 z 或 A 到 Z,两头的字母包括在内(范围)'},
{name: '[a-d[m-p]]', description: 'a 到 d 或 m 到 p:[a-dm-p](并集)'},
{name: '[a-z&&[def]]', description: '\td、e 或 f(交集)'},
{name: '[a-z&&[^bc]]', description: 'a 到 z,除了 b 和 c:[ad-z](减去)'},
{name: '[a-z&&[^m-p]]', description: 'a 到 z,而非 m 到 p:[a-lq-z](减去)'},
{name: '.', description: '任何字符(与行结束符可能匹配也可能不匹配)'},
{name: '\\d', description: '数字:[0-9]'},
{name: '\\D', description: '非数字: [^0-9]'},
{name: '\\s', description: '空白字符:[ \\t\\n\x0B\\f\\r]'},
{name: '\\S', description: '非空白字符:[^\\s]'},
{name: '\\w', description: '单词字符:[a-zA-Z_0-9]'},
{name: '\\W', description: '非单词字符:[^\\w]'},
{name: '\\p{Lower}', description: '小写字母字符:[a-z]'},
{name: '\\p{Upper}', description: '大写字母字符:[A-Z]'},
{name: '\\p{ASCII}', description: '所有 ASCII:[\x00-\x7F]'},
{name: '\\p{Alpha}', description: '字母字符:[\\p{Lower}\\p{Upper}]'},
{name: '\\p{Digit}', description: '十进制数字:[0-9]'},
{name: '\\p{Alnum}', description: '字母数字字符:[\\p{Alpha}\\p{Digit}]'},
{name: '\\p{Punct}', description: '标点符号:!"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~'},
{name: '\\p{Graph}', description: '可见字符:[\\p{Alnum}\\p{Punct}]'},
{name: '\\p{Print}', description: '可打印字符:[\\p{Graph}\x20]'},
{name: '\\p{Blank}', description: '空格或制表符:[ \\t]'},
{name: '\\p{Cntrl}', description: '控制字符:[\x00-\x1F\x7F]'},
{name: '\\p{XDigit}', description: '十六进制数字:[0-9a-fA-F]'},
{name: '\\p{Space}', description: '空白字符:[ \\t\\n\x0B\\f\\r]'},
{name: '\\p{javaLowerCase}', description: '等效于 java.lang.Character.isLowerCase()'},
{name: '\\p{javaUpperCase}', description: '等效于 java.lang.Character.isUpperCase()'},
{name: '\\p{javaWhitespace}', description: '等效于 java.lang.Character.isWhitespace()'},
{name: '\\p{javaMirrored}', description: '等效于 java.lang.Character.isMirrored()'},
{name: '\\p{InGreek}', description: 'Greek 块(简单块)中的字符'},
{name: '\\p{Lu}', description: '大写字母(简单类别)'},
{name: '\\p{Sc}', description: '货币符号'},
{name: '\\P{InGreek}', description: '所有字符,Greek 块中的除外(否定)'},
{name: '[\\p{L}&&[^\\p{Lu}]]', description: '所有字母,大写字母除外(减去)'},
{name: '^', description: '行的开头'},
{name: '$', description: '行的结尾'},
{name: '\\b', description: '单词边界'},
{name: '\\B', description: '非单词边界'},
{name: '\\A', description: '输入的开头'},
{name: '\\G', description: '上一个匹配的结尾'},
{name: '\\Z', description: '输入的结尾,仅用于最后的结束符(如果有的话)'},
{name: '\\z', description: '输入的结尾'},
{name: 'X ?', description: 'X,一次或一次也没有'},
{name: 'X *', description: 'X,零次或多次'},
{name: 'X +', description: 'X,一次或多次'},
{name: 'X {n }', description: 'X,恰好 n 次'},
{name: 'X {n ,}', description: 'X,至少 n 次'},
{name: 'X {n ,m }', description: 'X,至少 n 次,但是不超过 m 次'},
{name: 'X ??', description: 'X,一次或一次也没有'},
{name: 'X *?', description: 'X,零次或多次'},
{name: 'X +?', description: 'X,一次或多次'},
{name: 'X {n }?', description: 'X,恰好 n 次'},
{name: 'X {n ,}?', description: 'X,至少 n 次'},
{name: 'X {n ,m }?', description: 'X,至少 n 次,但是不超过 m 次'},
{name: 'X ?+', description: 'X,一次或一次也没有'},
{name: 'X *+', description: 'X,零次或多次'},
{name: 'X ++', description: 'X,一次或多次'},
{name: 'X {n }+', description: 'X,恰好 n 次'},
{name: 'X {n ,}+', description: 'X,至少 n 次'},
{name: 'X {n ,m }+', description: 'X,至少 n 次,但是不超过 m 次'},
{name: 'XY', description: 'X 后跟 Y'},
{name: 'X |Y', description: 'X 或 Y'},
{name: '(X )', description: 'X,作为捕获组'},
{name: '\\n', description: '任何匹配的 nth 捕获组'},
{name: '\\', description: 'Nothing,但是引用以下字符'},
{name: '\\Q', description: 'Nothing,但是引用所有字符,直到 \\E'},
{name: '\\E', description: 'Nothing,但是结束从 \\Q 开始的引用'},
{name: '(?:X )', description: 'X,作为非捕获组'},
{name: '(?idmsux-idmsux)', description: 'Nothing,但是将匹配标志由 on 转为 off'},
{name: '(?idmsux-idmsux:X )', description: 'X,作为带有给定标志 on - off 的非捕获组'},
{name: '(?=X )', description: 'X,通过零宽度的正 lookahead'},
{name: '(?!X )', description: 'X,通过零宽度的负 lookahead'},
{name: '(?<=X )', description: 'X,通过零宽度的正 lookbehind'},
{name: '(?X )', description: 'X,作为独立的非捕获组'}
]
}
this.refresh = function (buttonid,ele) {
};
this.ADVQUERY = function () {
var that = this;
};
};
var cs = new Class();
exports(cs.MODELNAME,cs);
});