正则的声明:

1、构造函数:var 变量名= new RegExp(/表达式/);

2、直接量:var 变量名= /表达式/;

test()方法:

1、正则对象方法,检测测试字符串是否符合该规则,返回true和false,参数(测试字符串)

2、Boolean = 表达式.test("要验证的内容");

正则内部类:

1、预定义类

.       除了换行和回车之外([^\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] 非单词字符

2、简单类

、/string/.test(“string”);            必须是完整的,只多不能少
/andy/.test(“andy”) // true
/andy/.test(“andylv”) // true
/andy/.test(“an”) // false
//一句话,只要完整包含了andy 就可以了(有他就行) 、/[string]/.test(“string”); 只要包含里面的任何一个就可以
/[andy]/.test("andy"); // true
/[andy]/.test("an"); // true
/[andy]/.test("ady"); // true
/[andy]/.test("anll"); // true
/[andy]/.test("assd"); // true
/[andy]/.test("ss"); // false
/[3aH8]/.test("ss"); // false

3、负向类

//中括号内,前面加个元字符^进行取反
//可以不够,但是不能多
//不够和正好,返回false;多了或者没有返回true
console.log(/[^abc]/.test('a')); //false
console.log(/[^abc]/.test('abc')); //false
console.log(/[^abc]/.test('abcd')); //true

4、范围类

//有时匹配的东西过多,而且类型又相同,全部输入太麻烦,我们可以在中间加了个横线
console.log(/[a-z]/.test(''));
console.log(/[A-Z]/.test('aa'));

5、组合类

//用中括号匹配不同类型的单个字符。
console.log(/[a-m1-]/.test("b")) //true

正则边界

1、^ 会匹配行或者字符串的起始位置(^在[]中才表示非!这里表示开始)

2、$ 会匹配行或字符串的结尾位置

//^$在一起 表示必须是精确匹配
console.log(/lily/.test("lilyname")); // true
console.log(/^lily$/.test("lily")); // true
console.log(/^lily$/.test("ly")); // false

量词

//量词的意思是多个字母,重复最后一个
* (贪婪) 重复零次或更多 (>=)
+ (懒惰) 重复一次或更多次 (>=)
? (占有) 重复零次或一次 (0||1) 数量为0或者1

比较特殊的{}

//{}重复多少次的意思,可以是个范围值,也可以是具体个数
{n} n次 (x=n)
{n,} 重复n次或更多 (x>=n)
{n,m} 重复出现的次数比n多但比m少 (n<=x<=m)
* {,}
+ {,}
? {,}

或者“|”,配合()提高权限

//匹配座机号码
var regexp = /^(\d{}-\d{})|(\d{}-\d{})$/;
var demo = /^\d{}-\d{}$|^\d{}-\d{}$/;

符号

1、() 是为了提取匹配的字符串。表达式中有几个()就有几个相应的匹配字符串。(\s*)表示连续空格的字符串。

2、[]是定义匹配的字符范围。比如 [a-zA-Z0-9] 表示相应位置的字符要匹配英文字符和数字。[\s*]表示空格或者*号,([\s\S]*)表示换行空格在内的所有文本

3、{}一般用来表示匹配的长度,比如 \s{3} 表示匹配三个空格,\s[1,3]表示匹配一到三个空格

4、(0-9) 匹配 '0-9′ 本身。 [0-9]* 匹配数字(注意后面有 *,可以为空)[0-9]+ 匹配数字(注意后面有 +,不可以为空){1-9} 写法错误。

5、[0-9]{0,9} 表示长度为 0 到 9 的数字字符串。

最新文章

  1. mysq l错误Table ‘./mysql/proc’ is marked as crashed and should be repaired
  2. 高性能MySQL(三):服务器性能剖析
  3. Python之路Python3【第零篇】Python2 &amp; Python3区别持续更新~
  4. Cordova - 与iOS原生代码交互2(使用Swift开发Cordova的自定义插件)
  5. 【HDU1301】Jungle Roads(MST基础题)
  6. vector cin
  7. JDBC(二)之JDBC处理CLOB和BLOB及事务与数据库元数据获取
  8. C# 枚举特性 FlagAttribute 的应用
  9. TCP连接建立系列 — 客户端接收SYNACK和发送ACK
  10. 小程序官网CMS开源项目出炉,Weixin-App-CMS 1.0 版本正式发布
  11. 让你一看就懂的快速排序算法(Java)
  12. java 使用jdbc连接Greenplum数据库和Postgresql数据库
  13. 正则冷知识;分组捕获、replace()的用法...
  14. Network - 互联网协议简介
  15. 【Spring Security】二、数据库管理用户权限
  16. [violet2]sillyz
  17. VS2013编译的exe独立运行在XP中方案
  18. Android ProgressBar具体解释以及自己定义
  19. 本机未装Oracle数据库时Navicat for Oracle 报错:Cannot create oci environment 原因分析及解决方案
  20. spark(一)

热门文章

  1. jQuery WeUI 组件下拉刷新和滚动加载的实现
  2. Extended symmetrical multiprocessor architecture
  3. STL源码剖析 学习笔记 MiniSTL
  4. TCP/IP具体解释学习笔记--TCP的坚持和保活定时器
  5. windows bat命令 开启关闭Oracle服务
  6. java中打印数组的5种方法
  7. Java课程设计——人事管理系统
  8. HDU5501/BestCoder Round #59 (div.2)The Highest Mark dp+贪心
  9. android kl 文件的作用【转】
  10. git的基本操作流程