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

JavaScript正则表达式

Samaritan Web前端工程师
难度中级
时长 1小时30分
学习人数
综合评分9.70
346人评价 查看评价
9.9 内容实用
9.6 简洁易懂
9.6 逻辑清晰
  • `123abc456xyz789`.match(/(\d+[a-z]+){2}?/g,`smg`); ["123abc456xyz"] `123abc456xyz789`.replace(/(\d+[a-z]+){2}?/g,`smg`); "smg789"
    查看全部
    0 采集 收起 来源:分组

    2018-03-22

  • 分组(Grouping)与反向引用(back references) 字符 含义 (x) 匹配 x 并且捕获匹配项。 这被称为捕获括号(capturing parentheses)。 例如,/(foo)/ 匹配且捕获 "foo bar." 中的 "foo"。被匹配的子字符串可以在结果数组的元素 [1], ..., [n] 中找到,或在被定义的 RegExp 对象的属性 $1, ..., $9 中找到。 捕获组(Capturing groups)有性能惩罚。如果不需再次访问被匹配的子字符串,最好使用非捕获括号(non-capturing parentheses),见下面。 \n n 是一个正整数。一个反向引用(back reference),指向正则表达式中第 n 个括号(从左开始数)中匹配的子字符串。 例如,/apple(,)\sorange\1/ 匹配 "apple, orange, cherry, peach." 中的 "apple,orange,"。一个更全面的例子在该表格下面。 (?:x) 匹配 x 不会捕获匹配项。这被称为非捕获括号(non-capturing parentheses)。匹配项不能够从结果数组的元素 [1], ..., [n] 或已被定义的 RegExp 对象的属性 $1, ..., $9 再次访问到。
    查看全部
    0 采集 收起 来源:分组

    2018-03-22

  • 如果在数量词 *、+、? 或 {}, 任意一个后面紧跟该符号(?),会使数量词变为非贪婪( non-greedy) ,即匹配次数最小化。 反之,默认情况下,是贪婪的(greedy),即匹配次数最大化。 `123456789`.match(/\d{3,4}/); ["1234"] `123456789`.match(/\d{3,4}/g); ["1234", "5678"] `123456789`.match(/\d{3,4}?/); ["123"] `123456789`.match(/\d{3,4}?/g); ["123", "456", "789"] https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/String/match 当一个字符串与一个正则表达式匹配时, match()方法检索匹配项。 str.match(regexp);
    查看全部
  • 如果在数量词 *、+、? 或 {}, 任意一个后面紧跟该符号(?),会使数量词变为非贪婪( non-greedy) ,即匹配次数最小化。反之,默认情况下,是贪婪的(greedy),即匹配次数最大化。 `123456789`.replace(/\d{3,7}/=); https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/String/match 当一个字符串与一个正则表达式匹配时, match()方法检索匹配项。 str.match(regexp); `123456789`.replace(/\d{3,7}/,`xyz`); "xyz89" `123456789`.replace(/\d{3,7}?/,`xyz`); "xyz456789"
    查看全部
  • \d{0,10}
    查看全部
    0 采集 收起 来源:量词

    2017-03-19

  • {n,} >= n {n, m} n >= , m =< {n} = n ? 0/1 + >= 1 * >= 0
    查看全部
    0 采集 收起 来源:量词

    2018-03-22

  • `abc@xyz abc@xyz abc@xyz`.replace(/^.{3}@/g, "$"); "$xyz abc@xyz abc@xyz" `abc@xyz abc@xyz abc@xyz`.replace(/^.{3}@/gm, "$"); "$xyz $xyz $xyz"
    查看全部
    0 采集 收起 来源:量词

    2018-03-22

  • m 多行; 将开始和结束字符(^和$)视为在多行上工作(例如,分别匹配每一行的开始和结束(由 \n 或 \r 分割),而不只是只匹配整个输入字符串的最开始和最末尾处。 `abc@xyz abc@xyz abc@xyz`.replace(/^.{3}@/g, "$"); "$xyz abc@xyz abc@xyz" `abc@xyz abc@xyz abc@xyz`.replace(/^.{3}@/gm, "$"); "$xyz $xyz $xyz"
    查看全部
  • ^ 开头 [^]字符集 $ 结尾 [$]字符集
    查看全部
  • 边界(Boundaries) 字符 含义 ^ 匹配输入开始。如果多行(multiline)标志被设为 true,该字符也会匹配一个断行(line break)符后的开始处。 例如,/^A/ 不匹配 "an A" 中的 "A",但匹配 "An A" 中的 "A"。 $ 匹配输入结尾。如果多行(multiline)标志被设为 true,该字符也会匹配一个断行(line break)符的前的结尾处。 例如,/t$/ 不匹配 "eater" 中的 "t",但匹配 "eat" 中的 "t"。 \b 匹配一个零宽单词边界(zero-width word boundary),如一个字母与一个空格之间。 (不要和 [\b] 混淆) 例如,/\bno/ 匹配 "at noon" 中的 "no",/ly\b/ 匹配 "possibly yesterday." 中的 "ly"。 \B 匹配一个零宽非单词边界(zero-width non-word boundary),如两个字母之间或两个空格之间。 例如,/\Bon/ 匹配 "at noon" 中的 "on",/ye\B/ 匹配 "possibly yesterday." 中的 "ye"。
    查看全部
  • . . === [^\r\n] (点号,小数点) 匹配任意单个字符,但是回车\r换行\n符除外:\n \r \u2028 或 \u2029。 在字符集中,点( . )失去其特殊含义,并匹配一个字面点( . )。
    查看全部
  • . === [^\r\n] . (点号,小数点) 匹配任意单个字符,但是回车\r换行\n符除外:\n \r \u2028 或 \u2029。 在字符集中,点( . )失去其特殊含义,并匹配一个字面点( . )。
    查看全部
  • \w 匹配任意来自基本拉丁字母表中的字母数字字符,还包括下划线。等价于 [A-Za-z0-9_]。 例如,/\w/ 匹配 "apple" 中的 'a',"$5.28" 中的 '5' 和 "3D" 中的 '3'。 `2017-03-19_abc.xyz`.replace(/[\w]/g, `X`); "XXXX-XX-XXXXXX.XXX" \W 匹配任意不是基本拉丁字母表中单词(字母数字下划线)字符的字符。等价于 [^A-Za-z0-9_]。 例如,/\W/ 或 /[^A-Za-z0-9_]/ 匹配 "50%" 中的 '%'。 `2017-03-19_abc.xyz`.replace(/[\W]/g, `X`); "2017X03X19_abcXxyz"
    查看全部
  • 字符类别(Character Classes) . === [^\r\n] . (点号,小数点) 匹配任意单个字符,但是回车\r换行\n符除外:\n \r \u2028 或 \u2029。 在字符集中,点( . )失去其特殊含义,并匹配一个字面点( . )。 需要注意的是,m 多行(multiline)标志不会改变点号的表现。因此为了匹配多行中的字符集,可使用[^] (当然你不是打算用在旧版本 IE 中),它将会匹配任意字符,包括换行符。 例如,/.y/ 匹配 "yes make my day" 中的 "my" 和 "ay",但是不匹配 "yes"。 \d 匹配基本拉丁字母表(basic Latin alphabet)中的一个数字字符。等价于[0-9]。 例如,/\d/ 或 /[0-9]/ 匹配 "B2 is the suite number." 中的 '2'。 \D 匹配任意一个不是基本拉丁字母表中数字的字符。等价于[^0-9]。 例如,/\D/ 或 /[^0-9]/ 匹配 "B2 is the suite number." 中的 'B'。 \w 匹配任意来自基本拉丁字母表中的字母数字字符,还包括下划线。等价于 [A-Za-z0-9_]。 例如,/\w/ 匹配 "apple" 中的 'a',"$5.28" 中的 '5' 和 "3D" 中的 '3'。 \W 匹配任意不是基本拉丁字母表中单词(字母数字下划线)字符的字符。等价于 [^A-Za-z0-9_]。 例如,/\W/ 或 /[^A-Za-z0-9_]/ 匹配 "50%" 中的 '%'。 \s 匹配一个空白符,包括空格、制表符、换页符、换行符和其他 Unicode 空格。 例如 /\s\w*/ 匹配 "foo bar" 中的 ' bar'。 \S 匹配一个非空白符。 例如,/\S\w*/ 匹配 "foo bar" 中的 'foo'。
    查看全部
  • `2017-03-19`.replace(/[0-9-]/, `X`); "X017-03-19" `2017-03-19`.replace(/[0-9-]/g, `X`); "XXXXXXXXXX" `2017-03-19`.replace(/[0-9]/, `X`); "X017-03-19" `2017-03-19`.replace(/[0-9]/g, `X`); "XXXX-XX-XX"
    查看全部
    2 采集 收起 来源:范围类

    2018-03-22

举报

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

微信扫码,参与3人拼团

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

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