深圳建设资格注册中心网站,部分网站dns解析失败,德州商城网站建设,云南建设银行招聘网站JS正则表达式学习笔记 1 学习笔记1.1 字符类1.2 量词和分支1.3 标志1.4 锚点1.5 断言 2 常用正则2.1 检查微信浏览器2.2 检查移动端浏览器2.3 检查中文字符2.4 手机号严格2.5 手机号比较宽松2.6 手机号宽松2.7 邮箱验证2.8 金额格式2.9 身份证号2.10 至少8为有数字、大小写字符… JS正则表达式学习笔记 1 学习笔记1.1 字符类1.2 量词和分支1.3 标志1.4 锚点1.5 断言 2 常用正则2.1 检查微信浏览器2.2 检查移动端浏览器2.3 检查中文字符2.4 手机号严格2.5 手机号比较宽松2.6 手机号宽松2.7 邮箱验证2.8 金额格式2.9 身份证号2.10 至少8为有数字、大小写字符、特殊字符 3 其他实践3.1 返回参数数字的千分位分隔符字符串3.2 以字符串的形式返回文件名扩展名  1 学习笔记 
1.1 字符类 
1、点号“.”标识除了换行之外的任易字符 2、字符集[]“匹配方括号中列举的任意一个字符 3、取反字符集”[^]“匹配不在方括号中列举的任意一个字符 4、字符范围”[a-z]“、”[0-9]“匹配方括号字符范围内的字符 5、单词字符”\w用于查找字母、数字和下划线 6、非单词字符\W匹配除字母、数字和下划线之外的字符 7、数字字符 “\d”仅用来匹配数字 8、非数字字符\D匹配除数字之外的字符 9、空白符\s仅匹配空白字符 10、非空白符\S匹配除空白符之外的字符 
1.2 量词和分支 
1、任意数次匹配在字符后面加上表示一个字符完全不匹配或可以匹配多次; 2、正整数次匹配“表示一个字符可以出现一次或多次; 3、可选匹配”?“表示一个字符是可选的 4、字符出现次数匹配”{n}“表示一个字符出现的确切次数可以在该字符的末尾将它出现的次数写进大括号 {} 中如 {1}; 5、字符出现至少次数匹配”{n,}“表示一个字符至少出现的次数可以在该字符的末尾将它出现的次数写进大括号 {min,} 中如 {1,}; 6、字符出现的次数范围匹配”{n,m}“表示一个字符出现的次数范围可以在该字符的末尾将它出现的次数写进大括号 {min,max} 中如 {1,4}; 7、分支”|竖线允许一个表达式包含多个不同的分支。所有分支用 | 分隔 
1.3 标志 
1、全局标志g全局标志使表达式选中所有匹配项如果不启用全局标志那么表达式只会匹配第一个匹配项 2、多行标志i正则表达式将所有文本视作一行。但如果我们使用了多行标志它就会单独处理每一行 3、忽略大小写标志m为了使我们编写的表达式不再大小写敏感我们必须启用不区分大小写标志 
1.4 锚点 
1、匹配字符串的开始^“所匹配的内容必须在字符串的头部 2、匹配字符串的结尾”$“所匹配的内容必须在字符串的尾部 3、单词边界字符\b”匹配单词的开头或末尾 4、非单词边界字符\B匹配不在单词开头或末尾的位置 
1.5 断言 
1、正向先行断言(?)“匹配结果后面必须跟着断言的内容但该内容不作为匹配结果 2、负向先行断言”(?!)“匹配结果后面必须不跟着断言的内容但该内容不作为匹配结果 3、正向后行断言”(?)“匹配结果前面必须跟着断言的内容但该内容不作为匹配结果 4、负向后行断言”(?!)匹配结果前面必须不跟着断言的内容但该内容不作为匹配结果 
2 常用正则 
2.1 检查微信浏览器 
/MicroMessenger/i2.2 检查移动端浏览器 
/(phone|pad|pod|iPhone|iPod|ios|iPad|Android|Mobile|BlackBerry|IEMobile|MQQBrowser|JUC|Fennec|wOSBrowser|BrowserNG|WebOS|Symbian|Windows Phone)/i2.3 检查中文字符 
/[\u4e00-\u9fa5]/gm2.4 手机号严格 
/^(?:(?:\|00)86)?1(?:(?:3[\d])|(?:4[5-79])|(?:5[0-35-9])|(?:6[5-7])|(?:7[0-8])|(?:8[\d])|(?:9[1589]))\d{8}$/2.5 手机号比较宽松 
/^(?:(?:\|00)86)?1[3-9]\d{9}$/2.6 手机号宽松 
/^(?:(?:\|00)86)?1\d{10}$/2.7 邮箱验证 
/^([a-zA-Z]|[0-9])(\w|-)[a-zA-Z0-9]\.([a-zA-Z]{2,4})$/2.8 金额格式 
/(^[1-9]([0-9])?(\.[0-9]{1,2})?$)|(^(0){1}$)|(^[0-9]\.[0-9]([0-9])?$)/2.9 身份证号 
/(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/2.10 至少8为有数字、大小写字符、特殊字符 
/(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/3 其他实践 
3.1 返回参数数字的千分位分隔符字符串 
// 返回参数数字的千分位分隔符字符串
function _comma(number) {// 补全代码return ${number}.replace(/(\d)(?(\d{3})$)/g, $1,);
}3.2 以字符串的形式返回文件名扩展名 
// 以字符串的形式返回文件名扩展名
const _getExFilename  (filename)  {// 补全代码return filename.replace(/(.*)(?\..*)/, )
}持续更新……