Fundebug经授权转载,版权归原作者所有。
正则表达式或“regex”用于匹配字符串的各个部分 下面是我创建正则表达式的备忘单。
匹配正则
使用
.test()
方法
let testString = "My test string"; let testRegex = /string/; testRegex.test(testString);
|
匹配多个模式
使用操作符号
|
const regex = /yes|no|maybe/;
|
忽略大小写
使用
i
标志表示忽略大小写
const caseInsensitiveRegex = /ignore case/i; const testString = 'We use the i flag to iGnOrE CasE'; caseInsensitiveRegex.test(testString);
|
提取变量的第一个匹配项
使用
.match()
方法
const match = "Hello World!".match(/hello/i);
|
提取数组中的所有匹配项
使用
g
标志
const
testString = "Repeat repeat rePeAT"; const regexWithAllMatches = /Repeat/gi; testString.match(regexWithAllMatches);
|
匹配任意字符
使用通配符
.
作为任何字符的占位符
// To match "cat", "BAT", "fAT", "mat" const regexWithWildcard = /.at/gi; const testString = "cat BAT cupcake fAT mat dog"; const allMatchingWords = testString.match(regexWithWildcard);
|
用多种可能性匹配单个字符
-
使用字符类,你可以使用它来定义要匹配的一组字符
-
把它们放在方括号里
[]
//匹配 "cat" "fat" and "mat" 但不匹配 "bat" const regexWithCharClass = /[cfm]at/g; const testString = "cat fat bat mat"; const allMatchingWords = testString.match(regexWithCharClass);
|
匹配字母表中的字母
使用字符集内的范围
[a-z]
const regexWidthCharRange = /[a-e]at/;
const regexWithCharRange = /[a-e]at/; const catString = "cat"; const batString = "bat"; const fatString = "fat";
regexWithCharRange.test(catString); regexWithCharRange.test(batString); regexWithCharRange.test(fatString);
|
匹配特定的数字和字母
你还可以使用连字符来匹配数字
const regexWithLetterAndNumberRange = /[a-z0-9]/ig; const testString = "Emma19382"; testString.match(regexWithLetterAndNumberRange)
|
匹配单个未知字符
要匹配您不想拥有的一组字符,使用否定字符集
^
const allCharsNotVowels = /[^aeiou]/gi; const allCharsNotVowelsOrNumbers = /[^aeiou0-9]/gi;
|
匹配一行中出现一次或多次的字符
使用
+
标志
const oneOrMoreAsRegex = /a+/gi; const oneOrMoreSsRegex = /s+/gi; const cityInFlorida = "Tallahassee";
cityInFlorida.match(oneOrMoreAsRegex); cityInFlorida.match(oneOrMoreSsRegex);
|
匹配连续出现零次或多次的字符
使用星号
*
const zeroOrMoreOsRegex = /hi*/gi; const normalHi = "hi"; const happyHi = "hiiiiii"; const twoHis = "hiihii"; const bye = "bye";
normalHi.match(zeroOrMoreOsRegex); happyHi.match(zeroOrMoreOsRegex); twoHis.match(zeroOrMoreOsRegex); bye.match(zeroOrMoreOsRegex);
|
惰性匹配
const testString = "catastrophe"; const greedyRexex = /c[a-z]*t/gi; const lazyRegex = /c[a-z]*?t/gi; testString.match(greedyRexex); testString.match(lazyRegex);
|
匹配起始字符串模式
要测试字符串开头的字符匹配,请使用插入符号
^
,但要放大开头,不要放到字符集中
const emmaAtFrontOfString = "Emma likes cats a lot."; const
|