freeCodeCamp刷题笔记(五)

目录

 

匹配多个字符串  |

匹配时忽略大小写  i

.match 语法、.test语法区分

全局匹配  g

字符集  [ ]

匹配大量字符  -

匹配出现一次或多次的字符  /s+/g

匹配出现零次或多次的字符  /Aa*/g

论惰性匹配和贪婪匹配

匹配字符串的开头  ^

匹配字符串的末尾  $  let lastRegex = /caboose$/

匹配所有的字母和数字  \w

匹配除了字母和数字的所有符号  \W

匹配所有数字  \d

匹配非数字字符 \D

限制用户名

匹配空白字符  \s

​​匹配非空白字符  \S 

检查全部或无

正向先行断言

使用捕获组搜索和替换

删除开头和结尾的空白


匹配多个字符串  |

let petString = "James has a pet cat.";
let petRegex = /dog|cat|bird/; // 修改这一行
let result = petRegex.test(petString);

匹配时忽略大小写  i

let myString = "freeCodeCamp";
let fccRegex = /freeCodeCamp/i; // 修改这一行
let result = fccRegex.test(myString);

.match 语法、.test语法区分

'string'.match(/regex/);
/regex/.test('string');

全局匹配  g

let twinkleStar = "Twinkle, twinkle, little star";
let starRegex = /Twinkle/ig; // 修改这一行
let result = twinkleStar.match(starRegex); // 修改这一行

字符集  [ ]

可以使用字符集 (character classes)更灵活的匹配字符。 可以把字符集放在方括号([ 和 ])之间来定义一组需要匹配的字符串。

let bugStr = "bug";
let bogStr = "bog";
let bgRegex = /b[aiu]g/;
bigStr.match(bgRegex);

匹配大量字符  -

有时需要匹配大量字符(例如,字母表中的每个字母)。 有一种写法可以让实现这个功能变得简短。在字符集中,可以使用连字符(-)来定义要匹配的字符范围。

匹配出现一次或多次的字符  /s+/g

匹配出现零次或多次的字符  /Aa*/g

论惰性匹配和贪婪匹配

匹配字符串的开头  ^

let rickyAndCal = "Cal and Ricky both like racing.";
let calRegex = /^Cal/; 
let result = calRegex.test(rickyAndCal); //true

匹配字符串的末尾  $  let lastRegex = /caboose$/

匹配所有的字母和数字  \w

使用元字符,可以使用 [a-z] 搜寻字母表中的所有字母。 这种元字符是很常见的,它有一个缩写,但这个缩写也包含额外的字符下划线。元字符\w等同于[A-Za-z0-9_]。

let quoteSample = "The five boxing wizards jump quickly.";
let alphabetRegexV2 = /\w/g;
let result = quoteSample.match(alphabetRegexV2).length;

匹配除了字母和数字的所有符号  \W

元字符\W等同于[^A-Za-z0-9_] 。

匹配所有数字  \d

等同于元字符 [0-9],它查找 0 到 9 之间任意数字的单个字符。

匹配非数字字符 \D

查找非数字字符的缩写是 \D。 这等同于字符串 [^0-9],它查找不是 0 - 9 之间数字的单个字符。

限制用户名

需要检索数据库中的所有用户名。 以下是用户在创建用户名时必须遵守的一些简单规则。

  1. 用户名只能是数字字母字符。

  2. 用户名中的数字必须在最后。 数字可以有零个或多个。 用户名不能以数字开头。

  3. 用户名字母可以是小写字母和大写字母。

  4. 用户名长度必须至少为两个字符。 两位用户名只能使用字母。

let username = "JackOfAllTrades";
let userCheck = /^[a-z]([0-9][0-9]+|[a-z]+\d*)$/i;// 修改这一行
let result = userCheck.test(username);

匹配空白字符  \s

可以使用 \s 搜寻空格,其中 s 是小写。 此匹配模式将匹配空格、回车符、制表符、换页符和换行符。 可以认为这类似于元字符 [\r\t\f\n\v]

​​匹配非空白字符  \S 

类似于元字符 [^\r\t\f\n\v]。

检查全部或无

可以使用问号 ? 指定可能存在的元素。 这将检查前面的零个或一个元素。 可以将此符号视为前面的元素是可选的。场景:美英单词拼写可能会有所不同。

let favWord = "favorite";
let favRegex = /favou?rite/; // 修改这一行
let result = favRegex.test(favWord);

正向先行断言

正向先行断言会查看并确保搜索匹配模式中的元素存在,但实际上并不匹配。 正向先行断言的用法是 (?=...),其中 ... 就是需要存在但不会被匹配的部分。

let sampleWord = "12345";
let pwRegex = /(?=[a-z])(?=\D*\d{2,})/i; // 修改这一行
let result = pwRegex.test(sampleWord);
console.log(result);

使用捕获组搜索和替换

可以在字符串上使用 .replace() 方法来搜索并替换字符串中的文本。 .replace() 的输入首先是想要搜索的正则表达式匹配模式。 第二个参数是用于替换匹配的字符串或用于执行某些操作的函数。使用美元符号($)语法在替换字符串中使用捕获组。

let str = "one two three";
let fixRegex = /(\w+)\s(\w+)\s(\w+)/; // 修改这一行
let replaceText = "$3 $2 $1"; // 修改这一行
let result = str.replace(fixRegex, replaceText);

删除开头和结尾的空白

let hello = "   Hello, World!  ";
let wsRegex = /^\s+|\s+$/g; // 修改这一行
let result = hello.replace(wsRegex,''); // 修改这一行

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

茶茶呀

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值