1、字符组:

^  $ 说的是开始位置和结束位置,在JS中,既表示字符串的起始位置和结束位置,也表示行的起始位置和结束位置

console.log(/^\d$/.test('2'));   // true  这里的 \d 代表的是数字
console.log(/^\d$/.test('a')); // false

[ ] 是一个字符集合,匹配他包含的任一个字符

console.log(/^[0123456]$/.test('0'));   // true
console.log(/^[0123456]$/.test('7')); // false
console.log(/^[0123456]$/.test('12')); // false 在这里在[0123456]代表的是一个字符,所以来匹配 12 返回 false

{m,n} 代表重复的次数,这个也叫量词

console.log(/^\d{1,3}$/.test('123'));   // true   在这是说可以出现 1 到 3 个数字
console.log(/^\d{1,3}$/.test('1')); // true
console.log(/^\d{1,3}$/.test('1234')); // false

? +  *  这些也叫量词

var res = /^<[^>/]([a-zA-Z]+)[^>/]>$/
console.log(res.test('<div>')); // true 这里这个正则匹配的是一个 html open tag,但是还有点问题不能匹配 <u> 这样的标签
console.log(res.test('<div/>')); // false

这里的  [^>/] 代表的是这个地方不能出现 > 和 / ,就是非的意思

- 代表的是一个范围 [a-zA-Z] 限制了标签名只能是大小写字母的组合

[a-zA-Z]+ 这里的 + 代表的是最少出现一次,出现次数没有上限

?代表了 可能出现也可能不出现,但是最多只能出现一次

        var res = /^travell?er$/;
console.log(res.test('traveller')); // true 这几个量词都是限制他们前一个字符
console.log(res.test('traveler')); // true

* 代表了 可能出现也可能不出现,出现次数没有上限

        var res3 = /^\"[^\"]*\"$/
console.log(res3.test('\"some\"')); // true 这里在双引号前面的 \ 都是对 “ 的转义
console.log(res3.test('\"\"')); // true

环视:(?!……)和(?=……)     (?<!……) 和(?<=……)   前面的那一对是否定顺序换和肯定顺序换,后面的一对是否定定循环和肯定逆循环

var res = /^<(?!\/)([^'">]+)(?<!\/)>$/
console.log(res.test('<div>')); // true
console.log(res.test('</div>')); // false
console.log(res.test('<div/>')); // false
<(?!\/) 的意思是在 < 的右侧不能出现 /,为了排除 close tag  \/ 是对 / 进行转义
(?<!\/)> 的意思是在 > 的左侧不能出现 / 为了排除 close-selfing tag
        var res = /^<(?!\/)([^'">]+)(?<=\/)>$/
console.log(res.test('<div>')); // false
console.log(res.test('<div/>')); // true
(?<=\/)> 这把 ! 变成了= ,意思是在 > 的左侧是 / ,匹配的是html的 close tag

\s 代表的是空白符,可能是空格也可能是换行 \S 是\s 的补集

\d 代表的是数字,\D 是\d 的补集   \w 代表的是[-a-z0-9A-Z],\W 是\w 的补集
\s\S  \d\D  \w\W  他们可以代表所有的字符

| ,就是或的意思,(\s|\d)+ 代表了不是数字就是空白字符,最少要出现一次

JavaScript正则(一)的更多相关文章

  1. JavaScript正则实战

    *:first-child { margin-top: 0 !important; } .markdown-body>*:last-child { margin-bottom: 0 !impor ...

  2. 我也谈javascript正则匹配

    一.javascript 正则全局匹配 g 慎用test()方法 来个例子: var a = /^[a-z]+/gi; a.test('bb123'); //true a.lastIndex ; // ...

  3. JavaScript正则式入门

    正则式 正则表达式,又称规则表达式.(英语:Regular Expression,在代码中常简写为regex.regexp或RE),计算机科学的一个概念.正则表通常被用来检索.替换那些符合某个模式(规 ...

  4. JavaScript 正则

    元字符 预定义类 边界 ^在中括号中时,匹配非hello的 str = 'hello world' str.match(/[^hello]/g) //[" ", "w&q ...

  5. JavaScript正则中\1\2的作用

    一.示例 1. 验证6个相同的数字 var reg = new RegExp(/^(\d)\1{5}/g); var a = '333333'; if(reg.test(a)) { alert('ri ...

  6. JavaScript 正则表达收集整理

    JavaScript 正则表达收集整理 //可为空 /^\s*$/ //密码验证,必须且只含有数字和字母,可以拥有英文符号,6-17位 /(?=.{,})(?=.*\d)(?=.*[a-z])[\x2 ...

  7. JavaScript正则常用知识总结

    一.JavaScript正则相关方法 str.match(regexp)与regexp.exec(str)功能类似. str.search(regexp)与regexp.test(str)功能类似. ...

  8. JavaScript 正则的使用方法

    JavaScript正则方法 1.compile 编译一个正则表达式对象 rgExp.compile(pattern, [flags])  pattern字符串表达式 2.exec 在指定字符串中执行 ...

  9. Javascript正则构造函数与正则表达字面量&&常用正则表达式

    本文不讨论正则表达式入门,即如何使用正则匹配.讨论的是两种创建正则表达式的优劣和一些细节,最后给出一些常用正则匹配表达式. Javascript中的正则表达式也是对象,我们可以使用两种方法创建正则表达 ...

  10. JavaScript正则验证邮箱

    正则表达式/^正则$/.test() <html> <head> <title>JavaScript</title> <meta charset= ...

随机推荐

  1. android Activity启动过程(三)从栈顶Activity的onPause到启动activityon的Resume过程

    ActivityStack.startPausingLocked() IApplicationThread.schudulePauseActivity() ActivityThread.sendMes ...

  2. powerdesigner 遇到的各种问题总结

    1. 设置自增 打开表 -- 在具体列的前面双击即可添加各种属性 2. 生成sql 时设置编码 database --> generate database --> format --&g ...

  3. 怎么查找Linux系统调用

    目前都是这么找: git grep SYSCALL_DEFINE | grep signal系统调用的函数名本来是叫sys_xxx,现在都是用宏SYSCALL_DEFINE(XXX),搞得无法找到sy ...

  4. 换晶振导致stm32串口数据飞码的解决办法

    一般来说,stm32f107都是用标配的晶振,比如8MHz. 但是,如果用别的晶振,比如13.56M的晶振,那串口接收还正常吗? 根据试验结果,很可能会飞码.比如说用串口助手发送的是0x35,但是在串 ...

  5. Tomcat启动时报错:“ Error starting static Resources”问题解决

    部署测试环境的时候,需要用到Tomcat.故在Linux上部署了Tomcat,并将开发提供的工程包部署到Tomcat的webapps目录下,启动Tomcat,部署成功.第二天修改工程配置文件时,发现w ...

  6. Log4.Net日志记录解析

    http://www.cnblogs.com/neekerss/archive/2011/01/04/1925171.html

  7. Asp.Net MVC 5 Razor 视图 未将对象引用到实例

    未将对象引用到实例的错误居然指向了@{Leyout=“..此处略,核实路径无误”}. 最后发现原来是在一个<select .. name="@Model.Category"& ...

  8. 设计模式之装饰器模式io的小入门(十一)

    装饰器模式详解地址 原文总结 定义: 在不必改变原类文件和使用继承的情况下, 动态的扩展一个对象的功能. 通过创建一个包装对象, 也就是装饰来包裹真实的对象 部分详解提示 看了一些文档, 装饰器模式非 ...

  9. Python常用模块(二)

    一.json与pickle json与pickle模块是为了完成数据的序列化. 序列化是指把对象(变量)从内存中变成可存储或传输的过程,在Python中叫picking,在其他语言中也由其他的叫法,但 ...

  10. vue-样式问题

    问题: 今天在用vue开发单页面应用的时候,遇到一个问题,在A页面,直接刷新,页面的布局样式之类的是没有问题的,不过在B页面跳转到A页面,那么A页面有一些样式就不是预期的效果. 发现解决问题: 用调试 ...