正则表达式基础篇

2017-07-23  本文已影响2人  竹小星

正则表达式(Regular Expression)是一种文本模式,包含普通字符(a-z, A-Z, 1-9,)和特殊字符(.-等)。是制定一套规则,匹配出一个符合规则字符串。

用处:

创建一个正则:

new RegExp('o','gi');
var reg = /o|你好|/d+/gi

选项:

选项 解释
g 全局
i 忽略大小写
m 段落多行匹配

修饰符:

修饰 解释
^ 行首
$ 行尾
[] 字符范围
/a[bc]d/ /abd丨acd/
[0-9] 匹配所有的数字, '-'代表范围
[1-38] 1丨2丨3丨8
[0-9.-] 匹配所有的数字,句号和减号
[a-zA-Z] 匹配所有的小写字母和大写字母
[^0] 排除中括号里面的东西
[^0-9] 排除数字
[^a-zA-Z] 排除字母

转译:

转译 解释
\ 消除空格, 一个斜杠是转译的意思
\\ 代表特殊字符斜杠\
. 任意
\. 代表点.
\\ 代表特殊字符斜杠
\d 数字 [0-9]
\w 代表 [0-9 a-z A-Z _]
\s 空格
\r 回车
\D 非数字 [^0-9]
\W 非单词 [^0-9 a-z A-Z _]
\S 非空格
\n 换行

量词:

转译 解释
+ 若干个,例: var reg = /\d+/g
* 可以没有, 有了不限
? 可以没有, 有最多一个
{} 个数范围
/\d{n}/ n个数字
{n,m} 最少n个数字, 最多m个
{n,} 最少n个, 无上限
{0,} 可以没有, 可以无上限
{0,1} 可以没有, 有只能一个

注: 量词只跟前一个元素

分组:

转译 解释
() 括号中的为一组

字符串方法:

查询符合正则的字符串:
str.sarch(reg)   // reg为定下的正则

返回值: 如果找到返回下标, 没有找到返回-1

挑选符合正则的内容:
str.match(reg)  
替换符合正则条件的字符串:
str.match(/\d/g,function(s){       // s为符合正则条件的字符串,形参
  return 'red'                     // 替换成的内容
})  

注: 返回的是替换后的新字符串, 源字符串没有发生改变

校验:

reg.test(str) 

注:只要字符串其中一部分满足条件就成立, 所以在校验的时候必须加首尾修饰符^$
返回值: 满足为true或不满足为false

表达式例子:

var reg  = /^(0[1-9]\d{1,2}-)?[1-9]\d{6,7}$/       // 验证座机号
var reg  = /^1\d{10}$/                             // 验证手机号
var reg  = /^\w+@[a-z0-9-]+(\.[a-z]{2,8}){1,2}$/   // 验证邮箱
var reg  = /^[1-9]/d{4,10}$/                       // 验证QQ号
var reg  = /^1[89]|[2-9]\d|100$/                   // 验证年龄, 是否18岁以上
var reg  = /^[\u4e00-\u9fa5]{2,6}$/                // 验证汉子姓名
var reg  = /^[1-9]\d{5}[1-9]\d{3}(0[1-9])|(1[0-2])(0[1-9])|([12][0-9])|(3[01])\d{3}[0-9X]$/                
                                                   // 验证身份证
上一篇 下一篇

猜你喜欢

热点阅读