为了账号安全,请及时绑定邮箱和手机立即绑定

JavaScript正则表达式

Samaritan Web前端工程师
难度中级
时长 1小时30分
学习人数
综合评分9.70
346人评价 查看评价
9.9 内容实用
9.6 简洁易懂
9.6 逻辑清晰
  • \bxxx\b 单词边界 [\b] 匹配一个退格符(backspace)(不要与 \b 混淆)
    查看全部
    1 采集 收起 来源:RegExp对象

    2017-03-19

  • 1、\ 2、d 数字 匹配4个数字 ,如:dddd,d{4} 3、[] 如:[/-] 同时匹配/和- 4、^ 表示开头 5、$ 表示结尾 6、()分组,,, 如 http:(\/\/.+\.jpg) 用圆括号包起来可以用 $1,指代,,如下面的例子1。 例子1:要替换协议是http且图片类型是jpg的图片 http://www123.jpg http://www123.png https://www123.jpg https://www123.png regular: 如果这样 “ http:\/\/.+\.jpg ”能匹配到要查找的图片,然后执行替换\/\/.+\.jpg,这时\/\/.+\.jpg 会显示出来,但是我的目的只是要去掉协议,显然现在的结果不是我要的,这时就需要用(),当加上了(),相当于给定义了一个变量,这里指$1,因此替换的时候,可以$1 就可以。 http:(\/\/.+\.jpg) 例子2:匹配所有日历2012-12-01,2012/12/01 2012/12/01 2013-12-12 20144/12/13 2013-12-122 20121212 regular:^\d{4}[/-]\d{2}[/-]\d{2}$ ^\d{4}[-/]\d{2}[-/]\d{2}$
    查看全部
  • http://regexper.com
    查看全部
  • 处理字符串强大 $1代表第一个分组里的内容 ()分组 []或 {}量次{3} ^开头 $结尾(防止出现半截的匹配) +:一个或多个循环 ?:零个或一个 *:任意次 单词边界\b
    查看全部
  • 也就是/g全文 /i忽略大小写 /m多行搜索 lastIndex下次想从哪里开始
    查看全部
    1 采集 收起 来源: JS对象属性

    2016-12-16

  • 用小括号分组,$1代表第一组;不分组的时候,$1默认为一个字符
    查看全部
    1 采集 收起 来源:分组

    2016-12-15

  • /[a-z]\d{3}/g 匹配的是三次数字 /([a-z]\d){3}/g 匹配的是字母+数字组合匹配三次
    查看全部
    1 采集 收起 来源:分组

    2016-12-15

  • /* * 预定义类 * . 等价于 [^\r\n] 表示除了回车符和换行符之外的所有的字符 * \d 等价于 [0-9] 数字字符 d:digit * \s 等价于 [\t\n\x0B\f\r] 空白符 s:space * \w 等价于 [a-zA-Z_0-9] 单词字符(字母、数字下划线) w:word * 大写的表示取反 * 边界匹配 * ^ 以XXX开始 * $ 以XXX结束 * \b 单词边界 * m 多行 */ var str = "@123\n@abc\n@jfl" var re = /^@\w\D/gm; var str2 = ""; str2 = str.replace(re,"中"); alert(str2);
    查看全部
  • 什么是正则表达式
    查看全部
  • 字符串对象方法 1.search String.prototype.search(reg) search()方法用于检索字符串中指定的子字符串,或检索与正则表达式相匹配的子字符串 方法返回第一个匹配结果 index,查找不到返回 -1 search()并不执行全局匹配,它将忽略标志 g ,并且总是从字符串的开始进行检索 例子: 'A11B2C3D4'.search(/\d/) 1 2.match String.prototype.match(reg) match()方法将检索字符串,以找到一个或多个与RegExp匹配的文本 RegExp是否具有标志 g 对结果影响跟大 非全局调用,即没有 g 如果RegExp没有标志 g,那么 match()方法就只能在字符串中执行一次匹配 如果没有找到任何匹配的文本,将返回null 否则它将返回一个数组,其中存放了与它找到的匹配文本有关的信息 返回数组的第一个元素存放的是匹配文本,而其余的元素存放的是与正则表达式的子表达式匹配的文本 除了常规的数组元素之外,返回的数组还含有2个对象属性 index 声明匹配文本的起始字符在字符串的位置 input 声明对 stringObject的引用 全局调用 如果RegExp具有标志 g,则match()方法将执行全局检索,找到字符串中的所有匹配子字符串 没有找到任何匹配的子串,则返回null 如果找到了一个或多个匹配的子串,则返回一个数组 数组元素中存放地字符串中所有的匹配子串,而且也没有index 属性或input属性 3.replace String.prototype.replace(str,replaceStr) String.prototype.replace(reg,replaceStr) String.prototype.replace(reg,function) function参数含义 function会在每次匹配替换的时候调用,有四个参数 匹配字符串 正则表达式分组内容,没有分组则没有该参数 匹配项在字符串中 index 原字符串
    查看全部
  • 预定义类 正则表达式提供了 预定义类 匹配常见的字符类 . 等价于 [^\r\n] 表示除了回车符和换行符之外的所有的字符 \d 等价于 [0-9] 数字字符 \D 等价于 [^0-9] 非数字字符 \s 等价于 [\t\n\x0B\f\r] 空白符 s:space \S 等价于 [^\t\n\x0B\f\r] 非空白符 \w 等价于 [a-zA-Z_0-9] 单词字符(字母、数字下划线) w:word \W 等价于 [^a-zA-Z_0-9] 非单词字符 提示:大写的表示取反 例子: 匹配一个 ab+数字+任意字符 的字符串 使用范围类:ab[0-9][^\r\n] 使用预定义类:ab\d. 常见的边界匹配字符: ^ 以XXX开始 $ 以XXX结束 \b 单词边界 \B非单词边界 例子: 1. '@123@abc@'.replace(/^@./g,'Q'); "Q23@abc@" 2.'@123@abc@'.replace(/.@$/g,'Q'); "@123@abQ" 3.'@123@abc@'.replace(/.@/g,'Q'); "@12QabQ"
    查看全部
  • 正则表达式应用场景 1.在IDE中使用正则表达式处理规则复杂的字符串查找、替换需求 2.在JavaScript程序设计中使用正则表达式处理字符串 3.在其他语言中 正则表达式 Regular Expression,使用单个字符串来描述、匹配一序列符合某个句法规则的字符串 简言之:就是按照某种规则去匹配符合条件的字符串,而这种规则就是正则表达式 使用正则表达式的目的: 自己先定义一种规则,然后去匹配一个字符串中符合规则的子字符串,甚至是整个字符串是否符合规则 通配符 find ./ -name *.txt 在当前目录下查找所有的txt文件 *.txt *代表任意字符 匹配邮箱的正则表达式 ^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+((\.[a-zA-Z0-9_-]{2,3}){1,2})$ 在线的正则表达式工具:http://regexper.com 语法: \b:单词边界 \bis\b .:任意字符 需要转义 \. *:0-n +: 1-n ?: 0-1 \d: 数字 \转义 匹配日期: 2006/02/03 1998-03-07 ^(\d{4})[\-](\d{2})[\-](\d{2})$ ()分组 取出:$2-$3-$1 02-03-2006 $1代表第一个小括号的内容,以此类推
    查看全部
  • \d 字符
    查看全部
  • 正则表达式本身的两个方法 1.test RegExp.prototype.test(str) 用于测试字符串参数中是否存在匹配正则表达式模式的字符串,如果存在则返回true,否则返回false lastIndex 记录当前匹配结果的、最后一个字符的、下一个字符的位置 注意:test()方法在匹配的时候当匹配到一个结果时,会从lastIndex位置开始匹配下一个结果,直到不存在的时候才置为0。因此,当使用全局g属性标识时,当匹配到最后一个结果时,lastIndex值指向不存在的位置,此时再执行test()会返回false。 例子:多次执行test()方法,会在true、false之间循环 (/\w/g).test('a')每次执行都是正确的,但是通过实例化对象,需要很大的开销 test()方法:原意就是测试有没有、能不能匹配上,当使用test原意时,没必要加g 2.exec RegExp.prototype.exec(str) 使用正则表达式模式对字符串执行搜索,并将更新全局RegExp对象的属性一反映匹配结果 如果没有匹配的文本则返回 null,否则返回一个结果数组: - index 声明匹配文本的第一个字符位置 - input 存放被检索的字符串 string 非全局调用 调用非全局的RegExp对象的 exec()时,返回数组 第一个元素是与正则表达式相匹配的文本 第二个元素是与RegExpObject的第一个子表达式相匹配的文本(如果有的话) 第三个元素是与RegExp对象的第二个子表达式相匹配的文本(如果有的话),以此类推
    查看全部
    1 采集 收起 来源:test 和 exec方法

    2016-09-04

  • 贪婪模式(默认) \d{3,6} 1234568 正则表达式在匹配时,尽可能多的匹配,直到匹配失败 '1234568'.replace(/\d{3,6}/g,'Q'); "Q8" '1234568'.replace(/\d{3,6}/,'Q'); "Q8" 非贪婪模式 正则表达式尽可能少的匹配,即一旦成功匹配就不再继续匹配 做法:在量词后加上 ? 即可 例子:'123456789'.match(/\d{3,5}?/g) ["123", "456", "789"]
    查看全部

举报

0/150
提交
取消
课程须知
1、对JavaScript 语法了解。 2、熟练使用文本编辑器。
老师告诉你能学到什么?
1、正则表达式基本语法 2、正则表达式分类梳理 3、好用的正则表达式图形化理解工具 4、正则表达式在JavaScript中的应用 5、常见文本批处理办法

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!