要学习什么之前,我们就应该至少提出三个疑问:是什么、有什么用、该怎么用,所以在学习正则表达式,接下来简称正则,我们就应该提出三个问题:什么是正则、为什么要用正则、该怎么使用正则。
1.什么是正则:
正则表达式(regular expression)又可以称作规则表达式,简单说正则就是操作一大堆符串的,那么怎么操作字符串,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,比如说,正则里说汉字,那么他可以用特定的符号代表中国所有的汉字
2.为什么要用正则:
1)正则表达式能够很大幅度的简化代码,实现起来也更为顺手;
2)用正则表达式去处理字符串,代码更容易理解;
3)通常来说,正则表达式的速度远比自己写逻辑要高很多;
3.该怎么使用正则:这里就用在JavaScript中的常用的用法举例
正则声明有两种写法:
1)var reg=new RegExp('规则','条件');
2)var reg=/规则/条件;
正则的条件:
i ignore 忽略大小写
g gobal 全局
m multiline 多行 这三个顺序随便写,不影响
转义字符:
\d 数字 也可以写为 [0-9]
\w 单词 也可以写为 [a-zA-Z0-9_]
\s 空格
\D 非数字 也可以写为 [^0-9]
\W 非单词 也可以写为 [^a-zA-Z0-9_]
\S 非空格
\b 单词边界,非单词
那么在正则中有些字符有特定的用法 ,比如 :\ $ / . 但是我就想这么写,那么我们可以将它转换 写做 \\ \$ \/ \. 他就只表达 \ $ / .这些意思了,就没有他特定的用法了
正则里的量词:
{n} 正好n个
{n,m} 最少n个,最多m个
{n,} 最少n个,多了不限
{,m} 这是错误的写法,没有这种写法
{0,m} 最少没有,最多m个
? 也可以写为{0,1} 可以没有,最多1个
+ 也可以写为{1,} 若干 至少一个多了不限
* 也可以写为{0,} 可以没有,有了不限
分组“()”:
圆括号表示分组,圆括号内的正则表达式为一个整体,分组可以用“|”表示“或”
修饰符:
| 代表或
^ 代表开头
$ 代表结尾
[]的用法
第一种用法 或
/[abc]/ 表示abc其中一个
/a[bc]d/ 表示abd或acd
/a[bcd]/ 表示ab或ac或ad
/[a|b|c]/ 表示a或b或c
[]里面的字符都代表他原始的意思
第二种用法 范围
/[0-9]/ \d代表0-9
/[a-z]/ 代表字母a-z
/[a-zA-Z]/ 代表字母a-z A-Z
/[1-38]/ 代表1 2 3 8
/[-1-3]/ 代表 - 1 2 3
第三种
/[^0-9]/ 非数字
^
^在[]外面 代表开头
^在[]里面 代表非排除括号里所有可能性
正则校验
reg.test()
只要字符串中有一部分满足,就返回true,否则返回false
配合^ 和 $ 使用 比如说校验手机号 ^代表开头 $代表结束
正则中汉字的代表字符
从"一”开始 到“ 龥”结束
4e00代表“一” 9fa5代表“龥”
/[\u4e00-\u9fa5]/就表示所有的汉字
这就是一些最常用最基本的一些用法,如果有什么说的不对的地方,还请多多指教。