正则表达式 RegExp
幺四四零
这个作者很懒,什么都没留下…
展开
-
32.从开头和结尾删除空格
说明有时,字符串周围的空格字符不是需要在那里的。字符串的典型处理是在开头和结尾时删除空格。练习编写正则表达式并使用适当的字符串方法来删除字符串开头和结尾处的空格。注意.trim()方法虽然在这里可用,但是你需要使用正则表达式来完成此挑战。result应该等于"Hello, World!"。 你不应该使用.trim()方法。 result变量不应设置为等于一个字符串。 你必...原创 2020-04-15 22:22:15 · 1014 阅读 · 0 评论 -
31.使用捕获组进行搜索和替换
说明搜索本身是有用的。但是,当更改(或替换)你匹配的文本时,你也可以使搜索更加强大。你可以使用字符串中的.replace()在字符串中搜索和替换文本。.replace()的输入首先是你要搜索的正则表达式模式。第二个参数是替换匹配的字符串或一个执行某件事的函数。var wrongText = "The sky is silver.";var silverRegex = /silver...原创 2020-04-15 21:53:38 · 1068 阅读 · 0 评论 -
30.使用捕获组复用模式
说明你搜索的某些模式将在字符串中多次出现。手动重复正则表达式是浪费时间的。有一个更好的方法可在你的字符串中有多个重复子串时进行指定。你可以使用capture groups捕获组搜索重复的子串。括号,(and),用于查找重复的子串。你把会重复的模式的正则表达式放在括号之间。要指定重复字符串的出现位置,你可以使用反斜杠(\),然后使用数字。该数字从1开始,并随着你使用的每个附加捕获组而增加...原创 2020-04-15 21:36:46 · 1331 阅读 · 1 评论 -
29.正向和负向Lookahead
说明Lookahead是一种模式,可以让JavaScript在字符串中预先检查,以便进一步检查模式。当你想在同一个字符串中搜索多个模式时,这可能很有用。lookaheads有两种:positive lookahead正向预查和negative lookahead负向预查。positive lookahead将预查确保搜索模式中的元素在那里,但实际上不会匹配它。正向预查是使用(?=......原创 2020-04-14 17:30:25 · 716 阅读 · 0 评论 -
28.检查全部或无
说明有时你想要搜索的模式可能有部分可能存在或可能不存在。尽管如此,检查它们仍然很必要。你可以使用问号?指定可能存在的元素。这检查前一个元素的零或一。你可以认为这个符号是说前一个元素是可选的。例如,美英英文略有差异,你可以使用问号来匹配这两个词的拼写。var american = "color"; var british = "colour"; var rainbo...原创 2020-04-14 17:06:11 · 107 阅读 · 0 评论 -
27.指定匹配的准确数量
说明你可以使用大括号quantity specifiers数量说明符指定模式的下限和上限数。而有时你只想要匹配特定数量。要指定模式的特定数量,只需在大括号之间添加一个数字即可。例如,为了仅匹配"hah"中出现3次的字母a,你的正则表达式将是/ha{3}h/。var A4 = "haaaah"; var A3 = "haaah"; var A100 = "h" + ...原创 2020-04-14 12:06:18 · 603 阅读 · 1 评论 -
26.仅指定匹配的下限数
说明你可以使用大括号quantity specifiers数量说明符指定模式的下限和上限数。而有时你只想指定没有上限、有下限数的模式。要仅指定模式的下限数,请保留第一个数字,后面跟一个逗号。例如,为了仅匹配字符串"hah"与至少出现3次的字母a,你的正则表达式将是/ha{3,}h/。var A4 = "haaaah";var A2 = "haah";var A100 = "h...原创 2020-04-14 11:51:32 · 136 阅读 · 0 评论 -
25.指定匹配的上限和下限数
说明回想一下,使用加号+来查找一个或多个字符,使用星号*可以查找零个或多个字符。这些都很方便,但有时你想要匹配一定范围的模式。你可以使用quantity specifiers数量说明符指定模式的下限和上限数。数量说明符使用大括号({and})。你将两个数字放在大括号之间 - 模式的上限和下限数。例如,要匹配字符串"ah"中出现3到5次的a,你的正则表达式将是/a{3,5}h/。...原创 2020-04-14 11:43:16 · 881 阅读 · 0 评论 -
24.匹配非空格字符
说明你前面学习了使用\s搜索空格(小写的s)。你也可以搜索除空白或空格之外的所有内容。使用\S搜索非空格,这是一个大写的s。此模式将不匹配空格、回车符、制表符、换页和新行字符。你可以想象它类似于字符类[^ \r\t\f\n\v]。var whiteSpace = "Whitespace. Whitespace everywhere!"var nonSpaceRegex = /\S/...原创 2020-04-14 11:32:08 · 3639 阅读 · 0 评论 -
23.匹配空格
说明到目前为止的挑战,涵盖了匹配字母表的字母和数字。你也可以匹配字母之间的空白或空格。你可以使用\s搜索空格,这是一个小写的s。此模式不仅匹配空格,还包括回车、制表符、换页和新行字符。你可以将其看作与字符类[ \r\t\f\n\v]类似。var whiteSpace = "Whitespace. Whitespace everywhere!"var spaceRegex = /\s...原创 2020-04-14 10:49:48 · 602 阅读 · 0 评论 -
22.合理的限制用户名
说明用户名在互联网上随处可见。它们是用户喜欢的网站给用户一个独特的身份。你需要检查数据库中的所有用户名。以下是创建用户名时用户必须遵循的一些简单规则。1)用户名中唯一的数字必须在末尾。末尾可以有零个或多个数字。2)用户名字母可以是小写和大写。3)用户名必须至少有两个字符长度。双字母用户名只能使用字母表的字母字符。练习更改正则表达式userCheck以符合上面列出的规则。...原创 2020-04-14 10:43:27 · 2601 阅读 · 6 评论 -
21.匹配所有非数字
说明上一个挑战显示了如何使用小写d的快捷方式\d搜索数字。你也可以使用类似的快捷方式大写D来搜索非数字。查找非数字字符的快捷方式是\D。这等于字符类[^0-9],它查找不是零和九之间的数字的单个字符。练习使用非数字\D的shorthand character类来计算电影标题中有多少非数字。你的正则表达式应使用快捷字符匹配非数字字符。 你的正则表达式应该使用全局标志。 你的正...原创 2020-04-14 10:26:32 · 3720 阅读 · 0 评论 -
20.匹配所有数字
说明你已经学习了常用的字符串模式(如字母数字)的快捷方式。另一种常见的模式是寻找数字。寻找数字字符的快捷方式是\d,小写字母d。这等于character类[0-9],它查找零到九之间的任何数字的单个字符。练习使用shorthand character类\d来计算电影标题中的数字。写出数字(“六”而不是6)不是算出。你的正则表达式应该使用快捷字符匹配数字字符。 你的正则表达式应...原创 2020-04-14 10:19:19 · 664 阅读 · 0 评论 -
19.匹配除字母和数字外的所有
说明你已经了解到可以使用快捷方式\w匹配字母数字[A-Za-z0-9_]。你可能想要搜索与字母数字相反的自然模式。可以使用\W搜索\w的相反方向。需要注意,相反的模式使用大写字母。此快捷方式与[^ A-Za-z0-9_]相同。var shortHand = /\W/;var numbers = "42%";var sentence = "Coding!";numbers.mat...原创 2020-04-13 18:21:47 · 2344 阅读 · 0 评论 -
18.匹配所有字母和数字
说明使用character类,你可以使用[a-z]搜索字母表中的所有字母。这种character类是足够通用的并且有快捷方式,尽管它还包括一些额外的字符。JavaScript中与字母表匹配的最接近的character类是\w。此快捷方式等于[A-Za-z0-9_]。这个character类匹配大小写字母加数字。注意,这个character类还包括下划线字符( _ )。var long...原创 2020-04-13 18:10:43 · 757 阅读 · 0 评论 -
17.匹配字符串末尾的模式
说明在上一个挑战中,你学会了使用caret插入字符来搜索字符串开头的模式。还有一种方法来搜索字符串末尾的模式。你可以使用正则表达式末尾的dollar sign美元字符$搜索字符串的末尾。var toEnding = "This is a never ending story"; var storyRegex = /story$/;storyRegex.test(theEnd...原创 2020-04-13 12:51:51 · 792 阅读 · 0 评论 -
16.匹配字符串开头的模式
说明之前的挑战表明,正则表达式可用于查找多个匹配项。它们也用于搜索在字符串中特定位置的模式。在前面的挑战中,你使用character sets字符集中的caret插入字符(^)创建一个[^thingsThatWillNotBeMatched]形式的negated character set。在character sets之外,caret插入字符用于在字符串开头查找模式。var f...原创 2020-04-10 21:10:09 · 389 阅读 · 0 评论 -
15.在追捕中找到一个或多个罪犯
说明现在到了暂停休息并测试你的正则表达式写作技巧的时间。一群罪犯逃出了监狱并逃跑了,但你不知道有多少。然而,你知道当他们在其他人周围时,他们是聚在一起的。你有责任马上找到所有的罪犯。以下是一个例子来查看如何执行此操作:正则表达式/z+/匹配字符z,当z连续出现一次或多次,会在以下所有字符串中找到匹配项:"z""zzzzzz""ABCzzzz""zzzzABC""abczz...原创 2020-04-10 20:53:23 · 225 阅读 · 0 评论 -
14.使用懒惰匹配查找字符
说明在正则表达式中,greedy贪婪匹配找到符合正则表达式模式的字符串的最长可能部分,并将其作为匹配返回。替代方案称为lazy懒惰匹配,它找到符合正则表达式模式的字符串的最小可能部分。你可以将正则表达式/t[a-z]*i/应用于字符串"titanic"。这个正则表达式基本上是以t开始的模式,以i结尾,并且之间有一些字母。正则表达式是默认的是greedy贪婪匹配,所以...原创 2020-04-10 20:38:53 · 332 阅读 · 0 评论 -
13.匹配零次或更多次出现的字符
说明上一个挑战是使用加号 +符号来查找出现一次或多次的字符。还有一个匹配零次或多次出现的字符的选项。要执行此操作的字符是asterisk或star:*星号。let sWord1 = "seed"; let sWord2 = "saw"; let kWord = "kite"; let sRegex = /s.*/; //搜索以s开头的单词 sRegex...原创 2020-04-10 11:30:39 · 1306 阅读 · 0 评论 -
12.匹配一次或多次出现的字符
说明有时,你需要匹配一行中一次或多次出现的字符(或一组字符)。这意味着它至少出现了一次,并可能重复出现。你可以使用+字符来检查是否是这种情况。需要记住,字符或模式必须连续出现。也就是说,字符必须有重复一遍。例如,/a+/g将在"abc"中找到一个匹配,并返回["a"]。因为有+,它也会在"aabc"中找到一个匹配项,并返回["aa"]。如果它改为检查字符串"abab",它会查到两个...原创 2020-04-10 11:02:50 · 5517 阅读 · 0 评论 -
11.匹配未指定的单个字符
说明到目前为止,你已经创建了一组要匹配的字符,但你也可以创建一组不想匹配的字符。这种类型的字符集称为否定字符集negated character sets。要创建一个negated character sets,你可以在开括号之后,不想要匹配的字符之前放置一个caret插入字符(^)。例如,/[^aeiou]/gi匹配不是元音的所有字符。需要注意,像.,!,[,@,/和空格等字符是匹...原创 2020-04-09 22:08:34 · 168 阅读 · 0 评论 -
10.匹配数字和字母表的字母
说明原创 2020-04-09 17:20:43 · 252 阅读 · 0 评论 -
09.匹配字母表
说明你已了解如何使用character sets字符集来指定一组要匹配的字符,但是当你需要匹配一系列字符(例如字母表中的每个字母)时,会需要输入很多字符。幸运的是,有一个内置的功能可以使这个更简短和简单。在character sets中,你可以使用hyphen连字符定义要匹配的字符范围:-。例如,要匹配小写字母a到e,你将使用[a-e]。var catStr = "cat"; ...原创 2020-04-08 11:26:38 · 382 阅读 · 0 评论 -
08.匹配具有多种可能性的单个字符
说明你已经学习了如何匹配文字模式(/literal/)和通配符(/./)。那些是正则表达式的极端情况,其中一个查找完全匹配,另一个匹配所有内容。有在两个极端情况之间的平衡选项。你可以使用character类来灵活地搜索文字模式。character类允许你通过将其放在正方形([and])括号中来定义一组你希望匹配的字符。例如,你要匹配"bag","big"和"bug",而不是"bog"。...原创 2020-04-08 11:04:21 · 260 阅读 · 0 评论 -
07.使用通配符句号匹配
说明原创 2020-04-07 23:04:58 · 318 阅读 · 0 评论 -
06.查找多个匹配
说明到目前为止,你只能提取或搜索一次模式。var testStr = "Repeat, Repeat, Repeat";var ourRegex = /Repeat/;testStr.match(ourRegex);// 返回 ["Repeat"]要多次搜索或提取模式,你可以使用g标志。var repeatRegex = /Repeat/g; testStr.ma...原创 2020-04-06 11:51:38 · 320 阅读 · 0 评论 -
05.提取匹配
说明到目前为止,你只是检查字符串中是否存在模式。你还可以提取使用.match()方法找到的实际匹配项。要使用.match()方法,将方法应用于字符串,并传入括号内的正则表达式。以下是一个示例:"Hello, World!".match(/Hello/);// 返回 ["Hello"]var ourStr = "Regular expressions";var ourRegex ...原创 2020-04-06 11:35:48 · 119 阅读 · 0 评论 -
04.在匹配时忽略大小写
说明到目前为止,你已经看到过正则表达式进行字符串的文字匹配。但有时,你也可能想要匹配大小写差异。case(或有时是letter case)是大写字母和小写字母之间的区别。大写字母的示例是"A","B"和"C"。小写的示例是"a","b"和"c"。你可以使用所谓的标志匹配两个示例。尽管还有其他的标志,但是在这里你只需专注于忽略大小写的标志:i标志。你可以通过将其附加到正则表达式来使用。使...原创 2020-04-06 11:16:55 · 745 阅读 · 0 评论 -
03.匹配不同可能性的文字字符串
说明使用正则表达式,如/coding/,你可以在另一个字符串中查找模式"coding"。这在搜索单个字符串是很强大的,但它只限于一种模式。你可以使用alternation或OR运算符:|搜索多个模式。此运算符可在模式之前或之后匹配模式。例如,如果你想匹配"yes"或"no",你需要的正则表达式是/yes|no/。你也可以搜索超过两种模式,通过添加更多的模式来添加更多的OR运算符来分...原创 2020-04-06 11:05:22 · 101 阅读 · 0 评论 -
02.匹配文字字符串
说明在上一个挑战中,你使用正则表达式:/the/搜索了“the”这个词,该正则表达式搜索字符串“the”的文字匹配。以下是另一个搜索字符串“Kevin”的文字匹配的例子:var testStr = "您好,我的名字是Kevin。";var testRegex = /Kevin/;testRegex.test(testStr);// 返回true任何其他形式的“Kevin”都不...原创 2020-04-02 20:27:36 · 311 阅读 · 0 评论 -
01.使用test方法
说明在编程语言中使用正则表达式来匹配字符串的部分。创建模式来帮助你进行匹配。如果你想要在字符串"the dog chased the cat"中找到"the",你可以使用以下正则表达式:/the/。 请注意,正则表达式中不需要引号。JavaScript有多种方式来使用正则表达式。测试正则表达式的一种方法是使用.test()方法。.test()方法接受 正则表达式,将其应用于一个字符串(...原创 2020-04-02 19:53:20 · 1027 阅读 · 0 评论