正则表达式(RegExp)
本质:用来记录文本规则的代码(为字符串定义规则,为输入内容定义规则!)
定义:
方式一:
通过构造函数定义var 变量名= new RegExp(/表达式/);
方式二:
通过直接量定义var 变量名= /表达式/;
组成:有一些普通字符和元字符组成,普通字符就是字母和数字,元字符具有特殊意义的字符。
test() 方法
正则对象方法,检测测试字符串是否符合该规则,返回true和false,参数(测试字符串)
使用语法: Boolean = 表达式.test("要验证的内容");
正则内部类
预定义类
符号 | 描述 |
---|---|
. | [^\n\r] 除了换行和回车之外的任意字符(“”不行) |
\d | [0-9] 数字字符 |
\D | [^0-9] 非数字字符 |
\s | [ \t\n\x0B\f\r] 空白字符 |
\S | [^ \t\n\x0B\f\r] 非空白字符 |
\w | [a-zA-Z_0-9] 单词字符 |
\W | [^a-zA-Z_0-9] 非单词 |
简单类
正则://
中什么特殊符号都不写,和[]
的加入,//
里面必须是完整的,只多不能少。[]
只要包含里面的任何一个就可以
负向类
不能是其中的整体或者一部分。中括号内,前面加个元字符^进行取反,不是括号里面的字符(一部分也不行)。可以不够,但是不能多。不够和正好,返回false;多了或者没有返回true。这个符号 ^
一定是写到方括号里面。
范围类
有时匹配的东西过多,而且类型又相同,全部输入太麻烦,我们可以在中间加了个横线。
组合类
用中括号匹配不同类型的单个字符。
正则边界^
会匹配行或者字符串的起始位置
注:^
在[]
中才表示非!
这里表示开始$
会匹配行或字符串的结尾位置^$
在一起 表示必须是这个(精确匹配)
量词
符号 | 描述 |
---|---|
* | (贪婪) 重复零次或更多 (>=0) |
+ | (懒惰) 重复一次或更多次 (>=1) |
? | (占有) 重复零次或一次 (0 ll1) 要么有 要么没有 |
{} | 重复多少次的意思 , 可以有多少个 |
{n} | n次 (x=n) |
{n,} | 重复n次或更多 (x>=n) |
{n,m} | 重复出现的次数比n多但比m少 (n<=x<=m) |
* | {0,} |
+ | {1,} |
? | {0,1} |
xly | 一个 l x 或者 y(没有&,用的是,代替的) |
() | 提高权限,有限计算 |
封装自己的trim 函数
function trim(str) {
return str.replace(/(^\s+)|(\s+$)/g,""); // 去掉前面和后面的空格
}