JavaScript 正则表达式备忘单实例代码
正则表达式或“regex”用于匹配字符串的各个部分下面是我创建正则表达式的备忘单。
匹配正则
使用.test()方法
lettestString="Myteststring"; lettestRegex=/string/; testRegex.test(testString);
匹配多个模式
使用操作符号|
constregex=/yes|no|maybe/;
忽略大小写
使用i标志表示忽略大小写
constcaseInsensitiveRegex=/ignorecase/i; consttestString='WeusetheiflagtoiGnOrECasE'; caseInsensitiveRegex.test(testString);//true
提取变量的第一个匹配项
使用.match()方法
constmatch="HelloWorld!".match(/hello/i);//"Hello"
提取数组中的所有匹配项
使用g标志
consttestString="RepeatrepeatrePeAT"; constregexWithAllMatches=/Repeat/gi; testString.match(regexWithAllMatches);//["Repeat","repeat","rePeAT"]
匹配任意字符
使用通配符.作为任何字符的占位符
//Tomatch"cat","BAT","fAT","mat" constregexWithWildcard=/.at/gi; consttestString="catBATcupcakefATmatdog"; constallMatchingWords=testString.match(regexWithWildcard);//["cat","BAT","fAT","mat"]
用多种可能性匹配单个字符
- 使用字符类,你可以使用它来定义要匹配的一组字符
- 把它们放在方括号里[]
//匹配"cat""fat"and"mat"但不匹配"bat" constregexWithCharClass=/[cfm]at/g; consttestString="catfatbatmat"; constallMatchingWords=testString.match(regexWithCharClass);//["cat","fat","mat"]
匹配字母表中的字母
使用字符集内的范围[a-z]
constregexWidthCharRange=/[a-e]at/; constregexWithCharRange=/[a-e]at/; constcatString="cat"; constbatString="bat"; constfatString="fat"; regexWithCharRange.test(catString);//true regexWithCharRange.test(batString);//true regexWithCharRange.test(fatString);//false
匹配特定的数字和字母
你还可以使用连字符来匹配数字
constregexWithLetterAndNumberRange=/[a-z0-9]/ig; consttestString="Emma19382"; testString.match(regexWithLetterAndNumberRange)//true
匹配单个未知字符
要匹配您不想拥有的一组字符,使用否定字符集^
constallCharsNotVowels=/[^aeiou]/gi; constallCharsNotVowelsOrNumbers=/[^aeiou0-9]/gi;
匹配一行中出现一次或多次的字符
使用+标志
constoneOrMoreAsRegex=/a+/gi; constoneOrMoreSsRegex=/s+/gi; constcityInFlorida="Tallahassee"; cityInFlorida.match(oneOrMoreAsRegex);//['a','a','a']; cityInFlorida.match(oneOrMoreSsRegex);//['ss'];
匹配连续出现零次或多次的字符
使用星号*
constzeroOrMoreOsRegex=/hi*/gi; constnormalHi="hi"; consthappyHi="hiiiiii"; consttwoHis="hiihii"; constbye="bye"; normalHi.match(zeroOrMoreOsRegex);//["hi"] happyHi.match(zeroOrMoreOsRegex);//["hiiiiii"] twoHis.match(zeroOrMoreOsRegex);//["hii","hii"] bye.match(zeroOrMoreOsRegex);//null
惰性匹配
- 字符串中与给定要求匹配的最小部分
- 默认情况下,正则表达式是贪婪的(匹配满足给定要求的字符串的最长部分)
- 使用?阻止贪婪模式(惰性匹配)
consttestString="catastrophe"; constgreedyRexex=/c[a-z]*t/gi; constlazyRegex=/c[a-z]*?t/gi; testString.match(greedyRexex);//["catast"] testString.match(lazyRegex);//["cat"]
匹配起始字符串模式
要测试字符串开头的字符匹配,请使用插入符号^,但要放大开头,不要放到字符集中
constemmaAtFrontOfString="Emmalikescatsalot."; constemmaNotAtFrontOfString="ThecatsEmmalikesarefluffy."; conststartingStringRegex=/^Emma/; startingStringRegex.test(emmaAtFrontOfString);//true startingStringRegex.test(emmaNotAtFrontOfString);//false
匹配结束字符串模式
使用$来判断字符串是否是以规定的字符结尾
constemmaAtBackOfString="ThecatsdonotlikeEmma"; constemmaNotAtBackOfString="Emmalovesthecats"; conststartingStringRegex=/Emma$/; startingStringRegex.test(emmaAtBackOfString);//true startingStringRegex.test(emmaNotAtBackOfString);//false
匹配所有字母和数字
使用\word简写
constlongHand=/[A-Za-z0-9_]+/; constshortHand=/\w+/; constnumbers="42"; constmyFavoriteColor="magenta"; longHand.test(numbers);//true shortHand.test(numbers);//true longHand.test(myFavoriteColor);//true shortHand.test(myFavoriteColor);//true
除了字母和数字,其他的都要匹配
用\W表示\w的反义
constnoAlphaNumericCharRegex=/\W/gi; constweirdCharacters="!_$!!"; constalphaNumericCharacters="ab283AD"; noAlphaNumericCharRegex.test(weirdCharacters);//true noAlphaNumericCharRegex.test(alphaNumericCharacters);//false
匹配所有数字
你可以使用字符集[0-9],或者使用简写\d
constdigitsRegex=/\d/g; conststringWithDigits="Mycateats$20.00worthoffoodaweek."; stringWithDigits.match(digitsRegex);//["2","0","0","0"]
匹配所有非数字
用\D表示\d的反义
constnonDigitsRegex=/\D/g; conststringWithLetters="101degrees"; stringWithLetters.match(nonDigitsRegex);//["","d","e","g","r","e","e","s"]
匹配空格
使用\s来匹配空格和回车符
constsentenceWithWhitespace="Ilikecats!" varspaceRegex=/\s/g; whiteSpace.match(sentenceWithWhitespace);//["",""]
匹配非空格
用\S表示\s的反义
constsentenceWithWhitespace="Cat" constnonWhiteSpaceRegex=/\S/g; sentenceWithWhitespace.match(nonWhiteSpaceRegex);//["C","a","t"]
匹配的字符数
你可以使用{下界,上界}指定一行中的特定字符数
constregularHi="hi"; constmediocreHi="hiii"; constsuperExcitedHey="heeeeyyyyy!!!"; constexcitedRegex=/hi{1,4}/; excitedRegex.test(regularHi);//true excitedRegex.test(mediocreHi);//true excitedRegex.test(superExcitedHey);//false
匹配最低个数的字符数
使用{下界,}定义最少数量的字符要求,下面示例表示字母i至少要出现2次
constregularHi="hi"; constmediocreHi="hiii"; constsuperExcitedHey="heeeeyyyyy!!!"; constexcitedRegex=/hi{2,}/; excitedRegex.test(regularHi);//false excitedRegex.test(mediocreHi);//true excitedRegex.test(superExcitedHey);//false
匹配精确的字符数
使用{requiredCount}指定字符要求的确切数量
constregularHi="hi"; constbestHi="hii"; constmediocreHi="hiii"; constexcitedRegex=/hi{2}/; excitedRegex.test(regularHi);//false excitedRegex.test(bestHi);//true excitedRegex.test(mediocreHi);//false
匹配0次或1次
使用?匹配字符0次或1次
constbritishSpelling="colour"; constamericanSpelling="Color"; constlanguageRegex=/colou?r/i; languageRegex.test(britishSpelling);//true languageRegex.test(americanSpelling);//true
代码部署后可能存在的BUG没法实时知道,事后为了解决这些BUG,花了大量的时间进行log调试,这边顺便给大家推荐一个好用的BUG监控工具Fundebug。
总结
以上所述是小编给大家介绍的JavaScript 正则表达式备忘单实例代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对毛票票网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!