在js中创建正则表达式对象
1)直接量语法
var regExp = /正则表达式/标记
var regExp = /^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/gi
2)使用内置类regExp(了解)
var regExp = new RegExp('正则表达式','标记')
注意:
-
标记是可选项:有以下值
g:全局(global)
i:忽略大小写(ignorecase)
gi:全局扫描,忽略大小写
方法
var regExp = /^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/gi; var ok = regExp.test('用户输入的字符串');//返回的是一个布尔值。返回值为true则表示匹配成功
用法
邮箱地址: <input type="text" id="email"/> <button value="验证邮箱地址" οnclick="checkEmail()"></button> <script> function checkEmail(){ var email = document.querySelector('#email'); var regExp = /^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/gi; var ok = regExp.test(email); if(ok){ alert('邮箱地址正确'); }else{ alert('邮箱地址不正确'); } }; </script>
常见的正则表达式符号
符号 | 作用 |
---|---|
. | 匹配除换行符以外的任意字符 |
\w | 匹配字母或数字或下划线或汉字 |
\s | 匹配任意的空白符 |
\d | 匹配数字 |
\b | 匹配单词的结束或开始 |
^ | 匹配字符串的开始 |
$ | 匹配字符串的结束 |
* | 重复0次或更多次(0-n次) |
+ | 重复一次或更多次(1-n次) |
? | 重复0次或一次(0或1次) |
{n} | 重复n次 |
{n,} | 重复n次或更多次(n+次) |
{n,m} | 重复n到m次 |
数量永远匹配的都是前面那个字符出现的次数 | |
\W | 匹配任意不是字母、数字、下划线、汉字的字符 |
\S | 匹配任意不是空白符的字符 |
\D | 匹配任意非数字的字符 |
\B | 匹配不是单词开头或结束的位置 |
[^x] | 匹配除了x以外的任意字符 |
[^aei] | 匹配出了aei这几个字母以外的任意字符 |
| | 表示或者 |
[1-9]表示1-9之间任意一个数字
[1-9]{2}表示1-9之间出现两个任意数字
[1-9]{2,}表示1-9之间出现2个或以上任意数字