八十四:JavaScript之正则表达式之常用的正则表达式

 

1.校验QQ号

八十四:JavaScript之正则表达式之常用的正则表达式

console.log(/^[1-9]\d{4,10}$/); // 严格控制5~11位
console.log(/^[1-9]\d{4}$/); // 不小于5位即可

 

2.用户名

八十四:JavaScript之正则表达式之常用的正则表达式

console.log(/^[\u4e00-\u9fa5a-zA-Z0-9_]{2,18}$/);
console.log(/^[\u4e00-\u9fa5\w]{2,18}$/);

 

3.密码

八十四:JavaScript之正则表达式之常用的正则表达式

console.log(/\S{6,16}$/);

 

4.去除字符串首尾的空白字符

八十四:JavaScript之正则表达式之常用的正则表达式

八十四:JavaScript之正则表达式之常用的正则表达式

console.log(' aaaa '.replace(/^\s+/, '')); // 去除首空
console.log(' aaaa '.replace(/\s+$/, '')); // 去除尾空
console.log(' aaaa '.replace(/^\s+/, '').replace(/\s+$/, '')); // 去除首尾空
console.log(' aaaa '.replace(/^\s+|\s+$/g, '')); // 去除首尾空

 

5.转驼峰

八十四:JavaScript之正则表达式之常用的正则表达式

八十四:JavaScript之正则表达式之常用的正则表达式

// background-color 转 backgroundColor
console.log('background-color'.replace(/-([a-z])/gi, function (all, letter){
  return letter.toUpperCase();
}));

 

6.匹配HTML标签

八十四:JavaScript之正则表达式之常用的正则表达式

八十四:JavaScript之正则表达式之常用的正则表达式

// 正向思考
console.log('<p class="odd" id="odd">123</p>'.match(/<\/?[a-zA-Z]+(\s+[a-zA-Z]+=".*")*>/g));
// 逆向思考
console.log('<p class="odd" id="odd">123</p>'.match(/<[^>]+>/g));
console.log('<input type="text" value=">" name="username" />'.match(/<[^>]+>/g)); // 对于有内容为>的标签,不好用
console.log('<input type="text" value=">" name="username" />'.match(/<(?:[^"'>]|"[^"]*"|'[^']+')*>/g));
console.log('<input type="text" value=">" name="username" />'.match(/<(?:[^"'>]|(["'])[^"']*\1)*>/g));

 

7.email邮箱

八十四:JavaScript之正则表达式之常用的正则表达式

八十四:JavaScript之正则表达式之常用的正则表达式

console.log('111@163.com'.match(/(?:\w+\.)*\w+@(?:\w+\.)+[a-z]+/i));
console.log('111@163.com'.match(/^[a-z0-9]+(?:[._-][a-z0-9]+)*@[a-z0-9]+([._-][a-z0-9]+)*\.[a-z]+$/i));

 

8.url

八十四:JavaScript之正则表达式之常用的正则表达式

八十四:JavaScript之正则表达式之常用的正则表达式

// 简单版
console.log('http://news.baidu.com/guonei'.match(/^(https?:\/\/)?([^:\/]+)(:\d+)?(\/.*)?$/i));
// 主机名详细匹配版
console.log('http://news.baidu.com/guonei'.match(/^(https?:\/\/)?([a-z0-9]\.|[a-z0-9][-a-z0-9]*[a-z0-9]\.)*([a-z]+)(:\d+)?(\/.*)?$/i));

 

上一篇:C++ - 一个语法问题


下一篇:MySQL表与数据向Oracle移植(使用Oracle SQL Developer工具)