# 正则 - 常用正则表达式
记录常用的正则表达式,方便查用
# 1. 判断并返回 IE 版本
let isIE = document.documentMode || +(navigator.userAgent.match(/MSIE (\d+)/) && RegExp.$1)
1
因为 IE11 修改了 userAgent 字符串,不再包含MSIE的标识。IE11 感觉自己高大上了,不能再和你们这群奇模怪样的 IE6-10 混了,加上了 like Gecko 标识,想要蒙混过关。所以要使用
document.documentMode
用来判断 IE 11,IE 家族的独有方法。
# 2. 校验邮箱
const emailReg = /^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
1
# 3. 判断字符串语言
Unicode 区段
区段范围 | 区段名称 | 英文名称 | 码位数 | 已定义字元数 | 文字 |
---|---|---|---|---|---|
U+2E80..U+2EFF | 中日韩汉字部首补充 | CJK Radicals Supplement | 115 | 汉字 | |
U+2F00..U+2FDF | 康熙部首 | Kangxi Radicals | 214 | 汉字 | |
U+2FF0..U+2FFF | 表意文字描述字符 | Ideographic Description Characters | 12 | 共用 | |
U+3000..U+303F | 中日韩符号和标点 | CJK Symbols and Punctuation | 64 | 汉字(15个), 谚文(2个), 共用(43个), 继承(4个) | |
U+3040..U+309F | 平假名 | Hiragana | 93 | 平假名(89个), 共用(2个), 继承(2个) | |
U+30A0..U+30FF | 片假名 | Katakana | 96 | 片假名(93个), 共用(3个) | |
U+3100..U+312F | 注音符号 | Bopomofo | 43 | 注音字母 | |
U+3130..U+318F | 谚文相容字母 | Hangul Compatibility Jamo | 94 | 谚文 | |
U+3190..U+319F | 汉文训读 | Kanbun | 16 | 共用 | |
U+31A0..U+31BF | 注音符号扩展 | Bopomofo Extended | 32 | 注音字母 | |
U+31C0..U+31EF | 中日韩笔画 | CJK Strokes | 36 | 共用 | |
U+31F0..U+31FF | 片假名拼音扩展 | Katakana Phonetic Extensions | 16 | 片假名 | |
U+3200..U+32FF | 中日韩围绕字元及月份 | Enclosed CJK Letters and Months | 255 | 谚文(62个), 片假名(47个), 共用(146个) | |
U+3300..U+33FF | 中日韩相容字元 | CJK Compatibility | 256 | 片假名(88个), 共用(168个) | |
U+3400..U+4DBF | 中日韩统一表意文字扩展区A | CJK Unified Ideographs Extension A | 6,582 | 汉字 | |
U+4DC0..U+4DFF | 易经六十四卦符号 | Yijing Hexagram Symbols | 64 | 共用 | |
U+4E00..U+9FFF | 中日韩统一表意文字 | CJK Unified Ideographs | 20,989 | 汉字 | |
U+A960..U+A97F | 谚文扩展-A | Hangul Jamo Extended-A | 29 | 谚文 | |
U+AC00..U+D7AF | 谚文音节 | Hangul Syllables | 11,172 | 谚文 | |
U+F900..U+FAFF | 中日韩相容表意文字 | CJK Compatibility Ideographs | 472 | 汉字 |
- 常用中文判断:
/[\u4E00-\u9FFF]/
# 4.校验 URL
const urlReg = /^((https?|ftp|file):\/\/)?([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \.-]*)*\/?$/;
const urlStr1 = 'https://haha.xxx.com/xxx/xxx';
console.log(urlReg.test(urlStr1)); // true
const urlStr2 = 'sss://haha.xxx.com/xxx/xxx';
console.log(urlReg.test(urlStr2)) // false
1
2
3
4
5
6
7
2
3
4
5
6
7
# 5.校验 IPv4
const ipv4Reg = /^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/;
const ipv4Str1 = '127.0.0.1';
console.log(ipv4Reg.test(ipv4Str1)); // true
const ipv4Str2 = '127.0.0.1655';
console.log(ipv4Reg.test(ipv4Str2)) // false
1
2
3
4
5
6
7
2
3
4
5
6
7
# 参考
← 正则 - 入门 正则 - 转义特殊字符 →