匹配全部字符的正则
2009-04-11 17:25
288 查看
var t1 = { id: '1000' ,name: 'mp' ,text: '主产品' ,seq: 1 ,child:[{ id: '1001' ,text: '列1' ,name: 'c1' ,type: 'INTEGER' ,seq: 1 },{ id: '1002' ,text: '列2' ,name: 'c2' ,type: 'STRING' ,seq: 2 },{ id: '1003' ,text: '列3' ,name: 'c3' ,type: 'INTEGER' ,seq: 3 }] }; var t2 = { id: '2000' ,name: 'fp' ,text: '附属产品' ,seq: 2 ,child:[{ id: '2001' ,text: '列1' ,name: 'c1' ,type: 'STRING' ,seq: 1 },{ id: '2002' ,text: '列2' ,name: 'c2' ,type: 'INTEGER' ,seq: 2 },{ id: '2003' ,text: '列3' ,name: 'c3' ,type: 'DATE' ,seq: 3 }] }; var arr = [t1, t2]; var example = "( ${主产品.列1} + ${主产品.列2} / ( ${附属产品.列1} - ${附属产品.列3} ) ) * 2 = ( ${附属产品.列3} + ${附属产品.列2} / ( ${附属产品.列1} - ${主产品.列3} ) )"; var reg = //${(?:.|/s)*?/.(?:.|/s)*?/}/gi; example = example.replace(reg, function(str){ var reg = //$|/{|/}/g; str = str.replace(reg, ""); var spt = str.split("."); //alert(spt); var newStr = null; for (var i = 0, len = arr.length; i < len; i++) { if (spt[0] == arr[i].text) { var child = arr[i].child; if (child) { for (var j = 0, c_len = child.length; j < c_len; j++) { if (spt[1] == child[j].text) { newStr = '${' + child[j].type + ',' + arr[i].name + '.' + child[j].name + ',' + arr[i].seq + '.' + child[j].seq + '}'; return newStr; } } } } } return newStr; }); alert(example);
其中{(?:.|/s)*?可以匹配全部字符
相关文章推荐
- 在提取网页内容时,请问匹配UTF8的全部内容,正则如何匹配 繁体、全角数字、标点 等字符
- Delphi中用正则表达式匹配中文字符
- 正则表达式之 Unicode 匹配特殊字符
- C#中获取匹配正则表达式的字符
- 随笔:linux中正则表达式BRE模式下的特殊匹配字符
- 随笔:linux中正则表达式BRE模式下的特殊匹配字符
- 【正则表达式】匹配中文字符 整理
- xcode使用正则表达式匹配中文字符
- PHP 正则表达式匹配中文字符
- mysql正则匹配不包含指定字符
- 匹配中文字符的正则表达式: [u4e00-u9fa5](
- 正则表达式常用匹配字符大全
- JS匹配任意字符的正则表达式写法
- 请实现一个函数用来匹配包括'.'和'*'的正则表达式。模式中的字符'.'表示任意一个字符,而'*'表示它前面的字符可以出现任意次(包含0次)。 在本题中,匹配是指字符串的所有字符匹配整个模式。例如,字
- 正则入门:匹配固定的单个字符
- 正则入门:匹配一个或多个字符
- 请实现一个函数用来匹配包括'.'和'*'的正则表达式。模式中的字符'.'表示任意一个字符,而'*'表示它前面的字符可以出现任意次(包含0次)。 在本题中,匹配是指字符串的所有字符匹配整个模式。例如,字符串"aaa"与模式"a.a"和"ab*ac*a"匹配,但是与"aa.a"和"ab*a"均不匹配
- 正则表达式2——匹配单个字符
- C#中几个正则表达式匹配输入字符的函数
- 正则表达式匹配任意字符