【JavaScript 学习--01】--正则篇
来源:互联网 发布:linux deploy官网 编辑:程序博客网 时间:2024/05/08 04:02
useful_link: http://www.manongjc.com/article/651.html
正则1:replace利用变量法
var curPatt = new RegExp('(\\w+?)(\\d+.*)');var newPatt = "xL";//handle datavar newData = _.map(data.results, function (d) { d.branch = d.branch.toUpperCase().replace(curPatt, newPatt+"$2"); return d});
正则:replace中使用函数
也可以参考 JavaScript Reference Link of Replace
其中date的格式是四位数的年加“-”再加后面的符号,我想把year加+1,再合并后面的字符,返回。
var date = “2014-04”;
先要返回new date = “2015-04”;
代码如下:
var date = "2014-04";date = date.replace(/(\d{4})(-.*)/, function (match, p1, p2, offset, string) { var tmp = parseInt(p1) + 1; return tmp+p2;}),
正则:大写每个单词的第一个字母
How to capitalize first letter of each word on JS
var aa = "new feature tab you";function toTitleCase(str){ return str.replace(/\w\S*/g, function(txt){ console.log(txt); //->依次打印new, feature, tab, you return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase();});}console.log(toTitleCase(aa)); //New Feature Tab You
code in my real project!var name = link.replace(/.*name=(.*?)&.*/, "$1").replace("_", " ").replace(/\w\S*/g, function(txt){return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase();});
正则2:获取符合条件的特定字符串
比如:想获取z数组中所有以lte开头后面紧跟只是一个数字的,并打印出该字符串以第一空格结束前的字符串。
var z = ["LTE23r.b world", "Lte33-- are right", "you33 changping", "you-are great", "zhou-", "lte3222 sdsfd lte0000"]; var regExpr = new RegExp('(^LTE\\d+.*?) ', "i"); z.forEach(function(d) { var zz = d.match(regExpr); console.log("%j",zz); zz ? console.log(zz[1]) : ""; });
该表达式的打印结果如下:
这里match出来的结果是个list,其中list[0]是全表达式符合的字符,list[N]是符合第N个括号里表达式的字符。
%j ["LTE23r.b ", "LTE23r.b", index: 0, input: "LTE23r.b world"]LTE23r.b%j ["Lte33-- ", "Lte33--", index: 0, input: "Lte33-- are right"]Lte33--%j null%j null%j null%j ["lte3222 ", "lte3222", index: 0, input: "lte3222 sdsfd lte0000"]lte3222
正则三:关于在正则里面用变量方法
var patt = "Jason";var re =new RegExp("^\\d+" + patt + "$","i"); // re为/^\d+Jason$/i
另外,还有一种方法是用过eval动态执行一段字符串的方法,不过我觉得从各方面来说,都属下策。
var re = eval("/^\\d+" + patt + "$/i")
动态添加正则表达式:
var myStrs = ["hello23 world", "hello-- are right", "you33 changping", "you-are great", "zhou-"];var regPatts = ["hello", "you"];var regPatt = "";regPatts.forEach(function(d) { //structure patt via regPatts if (d !=_.last(regPatts)) { regPatt += "^" + d + "[-|\\d]|"; } else { regPatt += "^" +d + "[-|\\d]" }});var newRegPatt = new RegExp(regPatt, "i")myStrs.forEach(function(d) { // var myResult = /(^hello-|^hello\d+)|(^you-|^you\d).+/i.test(d); var myResult = newRegPatt.test(d); console.log(myResult);//能打印"hello23 world", "hello-- are right", "you33 changping", "you-are great"});
在list里面添加多个正则表达式:
var VAILD_FEATURE_HEAD = [/LTE/i, /LBT/i, /CNI/i, /CNN/i, /CR/i];var VAILD_LEGACY =[new RegExp("legacy", "i"), new RegExp("regression", "i")];
之后可以利用$in 和$nin 在db里面查询:
tmpNewF1[featureType] = {$nin:VAILD_LEGACY};tmpNewF2[featureType] = {$in:VAILD_FEATURE_HEAD};myNewFeatureFilter["$and"].push(tmpNewF1);myNewFeatureFilter["$and"].push(tmpNewF2);
0 0
- 【JavaScript 学习--01】--正则篇
- [JavaScript]正则表达式学习
- javascript 正则表达式学习
- Javascript正则表达式学习
- javascript正则表达式学习
- javascript正则表达式学习笔记
- javascript正则表达式学习笔记
- JavaScript 正则表达式学习笔记
- Javascript学习笔记-----正则表达式
- javascript中的正则表达式学习
- JavaScript的学习--正则表达式
- JavaScript学习1:正则表达式
- Javascript学习1:正则表达式
- javaScript学习笔记正则表达式
- javascript中的正则匹配学习
- JavaScript正则表达式学习总结
- javascript正则学习(二)
- javascript正则表达式 学习笔记
- Codeforces Round #365 (Div. 2) D. Mishka and Interesting sum(离线树状数组)
- Android实现圆形进度条
- 雅虎疑遭黑客袭击 2亿用户账号或遭窃取
- 运行时数据区域
- C#中结构体和类的区别
- 【JavaScript 学习--01】--正则篇
- CSS实现圆角,三角,五角星,五边形,爱心,12角星,8角星,圆,椭圆,圆圈,八卦等等
- WORD:论文参考文献下面不能插入正文
- 一个人的旅行
- 笔杆网试用---功能篇(一)
- HDU 1285 确定比赛名次(拓扑排序的三种实现方法)
- js比较日期
- 杭电2046解题报告
- android 实用 框架