string合法性验证
网页内容的抓取
表单验证:减少与服务器的请求交互
检测一个字符串是否满足规则
声明一个正则表达式
//定义正则表达式
var patt = /元字符+量词/模式修正符
var patt = new RegExp("元字符+量词","模式修正符|igm|")
var patt = /原子、量词/
对象:
var patt = new Regpx(原子、量词)
## exec( ) : string满足条件返回匹配的值
patt.exec( )
## test( ) : string满足条件返回true false
patt.test( )
模式修正符
i : 忽略大小写的匹配
g : 全局匹配
m : 多行匹配模式
var str = "memEde";
var newstr = str.replace(/e/gi,"111")//e和E都替换成111
元字符(原子)、字符簇
【0-1字符 中文 特殊符号】
\d : 0-9 任意数字
\D : 非数字
\w : 数字、字母、下划线
\W : 非字符
\s : 匹配一个空格
\S : 匹配一个非空格
\n : 匹配一个换行符
\t : 匹配一个水平制表符(tab)
\T : 匹配一个非水平制表符
. : 匹配任意字符
\u4e00-\u9fa5 : 中文
var patt = /[\u4e00-\u9fa5]/
\ : 转义符
量词
^ : 取反、以某个元素开头
$ : 以什么元素结尾
/^\d{5}$/ 仅仅匹配5位数字(这里^表示以某元素开头)
/[^abc]/ 匹配的元素不包含abc(这里^表示取反)
? : 匹配元素0,1次
* : 匹配字符0,n次
+ : 匹配字符1,n次
= : 指定的元素
| : 或者
[]: 多选一
[0-9] == \d
(): 匹配子串、匹配一个整体
{}: 匹配执行次数
{x} 只匹配x次
{x,} 至少x次,最多无上限
{x,y} 匹配至少x次最大y次
\d{3} 任意一个三位数字
?:匹配元素0,1次 {0,1}
*:匹配某个字符0,n次 {0,}
+:匹配某个字符1,n次 {1,}
exec( ) : string满足条件返回匹配的值
test( ) : string满足条件返回true false
常用的正则:
//常用的正则表达式
//用户名:字母开头 6-15位之间
var patt = /^[A-z]\w{5,14}$/
var userName = ""
var re = patt.exec(userName)
//密码:6-15位可包含数字字母下划线
var patt = /^.{6,15}$/ 任意6-15位字符
//手机号
var phoneNum = /^1[356789]\d{9}$/
//邮箱
var email = /^\w+@\w+\.\w{2,5}(\.\w{2,5})?$/
//网址
var url = /^(http:\/\/|https:\/\/)?(www\.)?\w+(\.\w{2,5})(\.\w{2,5})?$/
//身份证
var id = /^\d{17}[0-9Xx]$/
stringApi:
replace(//,"replace")
search(//|"a")