正则表达式/[aeiouAEIOU]/g作用解析及大小写匹配优化咨询
正则表达式
/[aeiouAEIOU]/g的疑问解答 先看你写的这段代码:
function disemvowel(str) { str = str.replace(/[aeiouAEIOU]/g, ""); return str; } console.log(disemvowel("This website is for losers LOL!"));
下面逐个解答你的疑问:
1. //的含义
这是JavaScript里正则表达式的字面量语法,就像字符串用双引号/单引号包裹一样,//用来包裹正则的匹配规则,告诉JS这部分是一个专门用于字符串匹配的正则表达式对象。
2. 元音放在[]中的原因
[]叫做字符集(字符类),它的作用是匹配括号里的任意一个字符。比如[aeiouAEIOU]就表示匹配a、e、i、o、u、A、E、I、O、U中的任意一个,这种写法比写a|e|i|o|u|A|E|I|O|U简洁得多,执行效率也更高。
3. g修饰符的作用
g是global(全局)的缩写,默认情况下正则表达式只会匹配字符串中第一个符合规则的字符,加了g修饰符后,就会匹配字符串里所有符合规则的字符。如果你的代码不加g,那只会替换第一个元音,剩下的元音还会留在字符串里,达不到“去掉所有元音”的效果。
4. 如何一次性选中大小写元音,不用写[aeiouAEIOU]
可以加i修饰符,它是ignore case(忽略大小写)的意思。把正则改成/[aeiou]/gi就可以了,这个正则会自动匹配所有大小写的元音字母,不用再把大小写都列出来。修改后的代码如下:
function disemvowel(str) { str = str.replace(/[aeiou]/gi, ""); return str; } console.log(disemvowel("This website is for losers LOL!"));
内容的提问来源于stack exchange,提问作者yellow_melro
相关产品推荐
相关产品推荐

