JS——正则
2024-10-01 00:26:00
正则的声明:
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 的数字字符串。
最新文章
- mysq l错误Table ‘./mysql/proc’ is marked as crashed and should be repaired
- 高性能MySQL(三):服务器性能剖析
- Python之路Python3【第零篇】Python2 &; Python3区别持续更新~
- Cordova - 与iOS原生代码交互2(使用Swift开发Cordova的自定义插件)
- 【HDU1301】Jungle Roads(MST基础题)
- vector cin
- JDBC(二)之JDBC处理CLOB和BLOB及事务与数据库元数据获取
- C# 枚举特性 FlagAttribute 的应用
- TCP连接建立系列 — 客户端接收SYNACK和发送ACK
- 小程序官网CMS开源项目出炉,Weixin-App-CMS 1.0 版本正式发布
- 让你一看就懂的快速排序算法(Java)
- java 使用jdbc连接Greenplum数据库和Postgresql数据库
- 正则冷知识;分组捕获、replace()的用法...
- Network - 互联网协议简介
- 【Spring Security】二、数据库管理用户权限
- [violet2]sillyz
- VS2013编译的exe独立运行在XP中方案
- Android ProgressBar具体解释以及自己定义
- 本机未装Oracle数据库时Navicat for Oracle 报错:Cannot create oci environment 原因分析及解决方案
- spark(一)
热门文章
- jQuery WeUI 组件下拉刷新和滚动加载的实现
- Extended symmetrical multiprocessor architecture
- STL源码剖析 学习笔记 MiniSTL
- TCP/IP具体解释学习笔记--TCP的坚持和保活定时器
- windows bat命令 开启关闭Oracle服务
- java中打印数组的5种方法
- Java课程设计——人事管理系统
- HDU5501/BestCoder Round #59 (div.2)The Highest Mark dp+贪心
- android kl 文件的作用【转】
- git的基本操作流程