正则表达式复习--正则语法

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>

</body>
<script type="text/javascript">
/*********
 * 正则表达式是一个描述字符模式的对象
 * 可以使用一个RegExp()构造函数来创建RegExp对象
 * 正则表达式直接量也被定义为包含在一对斜杠(/)之间的字符 如: 
 * var expression = / pattern / flags;
 * 其中模式(pattern)部分可以使任何简单或者复杂的正则表达式如字符类,限制符,分组等,每个正则表达式可以带有一个或者多个标志(flags),用以表明正则表达式的行为
 * 本课程值讨论简单模式
 * 正则表达式的匹配模式支持的三个标志
 *  g:表示全局模式(global),即模式将被应用于所有字符串而非发现一个而停止
 *  i:表示不区分大小写(ease-insensitive)模式,在确定匹配想时忽略模式与字符串的大小写
 *  m:表示多行(multiline)模式,即在确定匹配项时忽略模式与字符串的大小写
 * 元字符:( [ { \ ^ $ | ) ? * + . ] }使用时必须转移
 * 特殊字符
 *  \t  /\t/    制表符
 *  \n  /\n/    换行符
 *  \r  /\r/    回车符
 *  \f  /\f/    换页符
 *  \b  /\b/    与回退字符
 *  \v  /\v/    垂直制表符
 *  \0  /\0/    空字符
 *********/

// 预定义类
//  .   [^\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]   非单词字符
console.log(111);
console.log(/\d/.test("3"))//true
console.log(/\d/.test("a"))//false
console.log(/\D/.test("b"))//true
console.log(/\w/.test("c"))//true
console.log(/\W/.test("正"))//true
console.log(/\s/.test(" "))//true
console.log(/\S/.test(" "))//false
console.log(/\S/.test("则"))//true
console.log(/./.test("aa"))//true
console.log(/./.test("  "))//true



// 简单类
// 原则上正则的一个字符对应一个字符,我们可以用[]把它们括起来,让[]这个整体对应一个字符。如
console.log(222);
console.log(/ruby/.test("ruby"));//true
console.log(/[abc]/.test("a"));//true

// 负向类
// 也是在那个括号里做文章,前面加个元字符进行取反,表示匹配不能为括号里面的字符。
console.log(333);
console.log(/[^abc]/.test("a"));//false
console.log(/[^abc]/.test("gg"));//true

// 范围类
// 有时匹配的东西过多,而且类型又相同,全部输入太麻烦,我们可以在中间加了个横线。
console.log(444);
console.log(/[a-f]/.test("c"));//true
console.log(/[a-f]/.test("l"));//false
console.log(/[a-z]/.test("m"));//true
console.log(/[^7-9]/.test("6"));//true
// 组合类
// 用中括号匹配不同类型的单个字符。
console.log(555);
console.log(/[a-m1-5\n]/.test("b"))//true
console.log(/[a-m1-5\n]/.test("2"))//true

// ^    开头  注意不能紧跟于左中括号的后面
// $   结尾
// ?        出现零次或一次
// *        出现零次或多次(任意次)
// +        出现一次或多次(至少一次)
// {n}      对应零次或者n次
// {n,m}    至少出现n次但不超过m次
// {n,} 至少出现n次(+的升级版)
console.log(666);
console.log(/[\u4e00-\u9fa5]{5}/.test("正则表达式"))//true
console.log(/[\u4e00-\u9fa5]{4}/.test("正则表达式"))//true
console.log(/^[\u4e00-\u9fa5]+$/.test("正则表达式"))//true
console.log(/^[\u4e00-\u9fa5]+$/.test("正则表达式&*@@"))//false
console.log(/\d{6}/.test("123456"))//true
console.log(/[ruby]{2}/.test("rr"))//true
console.log(/[ruby]{2}/.test("ru"))//true
console.log(/[ruby]{2}/.test("ry"))//true


</script>
</html>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值