正则表达式
~~~~~基本方法:
1.test
正则.test(字符串)//判断字符串是否符合正则,符合返回true 否则返回false
2.search()
字符串.search(正则)
在字符串中搜索符合正则的,有的话返回符合的位置,否则返回-1
3.match()
字符串.match(正则)
在字符串中搜索符合正则的内容,搜索成功返回内容(以数组形式),否则返回null
4.replace()
字符串.replace(正则,替换的字符串)
查询符合正则的字符串,查询成功就替换成对应的字符串,返回替换后的内容
~~~~~常见用某些单词表示一组:
\s空格
\S非空格
\d数字
\D非数字
\w字符(字母 数字 下划线)
\W非字符
~~~~~常见的特殊字符的表示:
g全局查找
i忽略大小写
\转义
^字符串的开始位置
$字符串的结束位置
*任意次数
+大于1次
?0次或者1次
{n}匹配n次
{n,}匹配大于n次
{n,m}匹配大于n次小于m次
|或
[a-b]a到b的范围
[abc]a,b,c中的任意一个
[^abc]除了a,b,c中的任意一个
[^a-z]除了a到z之间的任意一个
(pattern)
匹配 pattern 并捕获该匹配的子表达式。可以使用 $0...$9 属性从结果“匹配”集合中检索捕获的匹配。若要匹配括号字符 ( ),请使用“\(”或者“\)”。
(?:pattern)
匹配 pattern 但不捕获该匹配的子表达式,即它是一个非捕获匹配,不存储供以后使用的匹配。这对于用“或”字符 (|) 组合模式部件的情况很有用。例如,与“industry|industries”相比,“industr(?:y| ies)”是一个更加经济的表达式。
(?=pattern)
执行正向预测先行搜索的子表达式,该表达式匹配处于匹配 pattern 的字符串的起始点的字符串。它是一个非捕获匹配,即不能捕获供以后使用的匹配。例如,“Windows (?=95| 98| NT| 2000)”与“Windows 2000”中的“Windows”匹配,但不与“Windows 3.1”中的“Windows”匹配。预测先行不占用字符,即发生匹配后,下一匹配的搜索紧随上一匹配之后,而不是在组成预测先行的字符后。
(?!pattern)
执行反向预测先行搜索的子表达式,该表达式匹配不处于匹配 pattern 的字符串的起始点的搜索字符串。它是一个非捕获匹配,即不能捕获供以后使用的匹配。例如,“Windows (?!95| 98| NT| 2000)”与“Windows 3.1”中的“Windows”匹配,但不与“Windows 2000”中的“Windows”匹配。预测先行不占用字符,即发生匹配后,下一匹配的搜索紧随上一匹配之后,而不是在组成预测先行的字符后。
例子:
其他的还好,自己看看正则的语法就好了。我这块有一个检测密码强度的正则:
要求是:有数字 字母 特殊字符表示密码的强弱
var strongRegex = new RegExp(/(?=.*[\d]+)(?=.*[a-zA-Z]+)(?=.*[^a-zA-Z\d]+).{8,50}/g);//高 数字字母特殊字符全部符合
var mediumRegex = new RegExp(/(?![\d]+$)(?![a-zA-Z]+$)(?![^\da-zA-Z]+$)[\da-zA-Z\W_]{8,50}/g);//中 数字字母特殊字符符合两个
var weakRegex = new RegExp(/(\d+)|([a-zA-Z]+)|([^\da-zA-Z]+){8,50}/g);//弱 数字字母特殊字符符合其中的一个
/电话 (function(){ var tel=$("#tel").val(); var t=/^1\d{10}$/; var bool=t.test(tel); console.log(bool); $(".tel").text(bool); })(); //邮箱 (function(){ var email=$("#email").val(); console.log(email); var te=/^(\d|\a){2,20}@126.com$/; var bool=te.test(email); console.log(bool); $(".email").text(bool); })();