[toc]
前端–JavaScript正则表达式
JavaScript诞生的目的:验证表单的合法性。验证数据的合法性,还可以使用正则表达式。
RegExp 对象
表示正则表达式,它是对字符串执行模式匹配的强大工具。
i 是忽略大小写
- | 或的意思
- []或 [abc] 表示的是a或者b或者c,代表一个字符。
- [a-z] 表示小a-小z中的任何一个
- [A-Z] 大A-大Z中的任何一个
- [0-9] 表示任意数字中的一个。
- ^ 在[]中表示取反。
- () 分组
- ^ a以a开头
- {m} 表示连续出现m次
- {m,} 连续m以及大于m此
- {m,n} 连续出现m到n次
? 0次或者1次
* 0到多次
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| <script> var reg = new RegExp("d", "i"); reg = new RegExp("cd"); reg = new RegExp("a(c|b)c"); reg = new RegExp("a[abc]a"); reg = /abc/i; reg = /a[abcdefghijklmnopqrstuvwxyz0123456789_]a/; reg = /a[a-zA-Z0-9]a/; reg = /[^a-zA-Z0-9_]/; reg = /(ab)|c/; reg = /aaaaa/; reg = /a{5}/; reg = /^a{5}/; reg = /^a{5}$/; reg = /^a{3,5}$/; reg = /^a{3,}$/; reg = /^to?m$/; reg = /^mmA+$/; reg = /^mmA*$/;
var str = "mmA"; console.log(reg.test(str)); </script>
|
\w 数字字母下划线。 word
\W 非 数字字符下划线 取反\w
\ 转义字符。
-
. 通配符号,代表的是任意字符。
\d 匹配数字 digit
-
\D 匹配非数字 取反\d
-
\s 空白字符,空格
-
\S 非空格
\n 换行换行
\t
\b
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| <script> $(function () { var reg = /^[A-Za-z0-9_]{3,5}$/; reg = /^\w{3,5}$/; reg = /^\W{3,5}$/; reg = /^a\/b$/; reg = /^a.b$/; reg = /^a\.b$/; reg = /^\d{11}$/; reg = /^\D{1}$/; reg = /^a\sb$/; reg = /^a\Sb$/; var str = "ahb"; console.log(reg.test(str)); }); </script>
|
电话号码正则表达式
1 2 3 4 5 6 7 8
| <script> $(function () { var phoneReg=/^1\d{10}$/; phoneReg=/^0\d{2,3}-\d{8}$/; var str="025-83765566"; console.log(phoneReg.test(str)); }); </script>
|
邮箱匹配
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| <script>
$(function () { var reg=/^\w{5,20}@\w+(\.\w{2,}){1,2}$/; var str="2556559626@qq.com.cn" console.log(reg.test(str)); }); </script>
|
字符串的正则函数
- split(正则) :根据正则表达式进行字符串的切割
- match(); 能够匹配正则数据,一个或者多个 ,匹配多个的时候,加上一个//g;全局匹配
- search(); 能够根据正则匹配数据,返回匹配到的数据在字符串中的索引,indexOf();
- replace(“正则”,“替换的数据”); 能够匹配正则的数据,一个到多个,如果是多个用g,全局匹配替换。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| <script> $(function () { var str = "嘻嘻,哈哈a啦啦"; var arr = str.split(/[,|a]/); console.log(arr); str = "上门服务,查水表,电话:18753275338,上门服务,查水表,电话:18753275339,上门服务,查水表,电话:17625959544,上门服务,查水表,电话:18868108287,上门服务,查水表,电话:13585287895,上门服务,查水表,电话:18753275300上门服务,查水表,电话:18753275338上门服务,查水表,电话:18753275338,上门服务,查水表,电话:18753275338,上门服务,查水表,电话:18753275318"
console.log(str.match(/1\d{10}/g)); console.log(str.search(/1\d{10}/g)); console.log(str.replace(/1\d{10}/g, "******"));
}); </script>
|