/** * 模板属性效验规则 * @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); });