string对象中关于正则表达式的方法
1. search()方法
该方法用于检索字符串中指定的子字符串,或检索与正 则表达式相匹配的字符串。
基本语法:stringObject.search(regexp);
2. match()方法
该方法用于在字符串内检索指定的值,或找到一个或者多个正则表达式的匹配。该方法类似于indexOf()或者lastIndexOf(); 但是它返回的是指定的值,而不是字符串的位置;
基本语法:stringObject.match(searchValue)或者stringObject.match(regexp)
3. replace()方法
该方法用于在字符串中使用一些字符替换另一些字符,或者替换一个与正则表达式匹配的子字符串;
基本语法:sstringObject.replace(regexp/substr,replacement);
3. split()方法
该方法把一个字符串分割成字符串数组。
基本语法:stringObject.split(separator,howmany);
RegExp对象方法
1. test()方法
该方法用于检测一个字符串是否匹配某个模式;
基本语法:RegExpObject.test(str);
2. exec()方法
该方法用于检索字符串中的正则表达式的匹配。
基本语法:RegExpObject.exec(string)
练习
- 匹配价格: /^\d*(.\d{0,2})?$/
- 身份证号码的匹配: /^(\d{14}|\d{17})(\d|[xX])$/
单词的首字母大写:
let replaceReg = (reg, str) => { str = str.toLowerCase(); return str.replace(reg, m => m.toUpperCase()); } let reg = /\b\w/g
- 验证邮箱的正则表达式:/^ [0-9a-zA-Z]+(@[0-9a-zA-Z])+(.[0-9a-zA-Z_])/
敏感词过滤:
let str = '我草你妈哈哈背景天胡景涛哪肉涯剪短发欲望'; let regExp = /草|肉|欲|胡景涛/g; let result = str.replace(regExp, function(match) { let len = match.length; let str; switch (len) { case 1: str = '*'; break; case 2: str = "**"; break; case 3: str = "***"; break; default: str = '****'; } return str; }); console.log(result); //我*你妈哈哈背景天***哪*涯剪短发*望
改字符串为驼峰命名:
const str = 'get-element-by-id'; function camelCased(str){ let regExp = /-(\w)/g; return str.replace(regExp, (match, p) => p.toUpperCase()); }; console.log(camelCased(str));
判断连续重复字母:
let str1 = 'abc3d4e5'; let str2 = 'aab2c3'; let regExp = /([a-zA-Z])\1/; console.log(regExp.test(str1));//false console.log(regExp.test(str2));//true
提取链接
let reg = /(<a[.\s]*href\s*=\s*')(http:\/\/.*)('>\w*<\/a>)/gi; let html = "<div><a href='http://www.baidu.com'>222</a><p>344</p></div>"; html.match(reg); console.log(RegExp.$1);
本文摘自: [http://www.cnblogs.com/tugenhua0707/p/5037811.html#_labe9][1]