用一個正則表達式來計算一個字符串中有多少個英文字符

nzmw4668 8年前發布 | 12K 次閱讀 正則表達式 正則

前段時間,在面試一個資深前端開發時,偶然想到了一道面試題:用一個正則表達式來計算一個字符串中有多少個英文字符。

首先把面試題簡化下

怎樣在一個字符串中找到指定的字符

str.search

var str='1a2b3c4d5ef';
str.search('a')

str.indexOf

var str=‘1a2b3c4d5ef’;
str.indexOf('a')

str.match

var str=‘1a2b3c4d5ef’;
str.match('a')

怎樣在一個字符串中找到指定字符的個數

for/while等循環

var str='1a2b3c4d5ef',
     num=0;
for(var i=0;i<str.length;i++){
  if(str.charAt(i)=='a'){
    num+=1;
  }
}

str.split

var str='1a2b3c4d5ef';
str.split('a').length-1

str.match

var str='1a2b3c4d5ef';
str.split('a').match(/a/ig).length

怎樣在一個字符串中找到英文字符(特定區間的條件)的個數

for/while等循環可以實現

str.split 同樣可以實現,str.match也可以實現,兩者基本沒有差別,都是依靠正則表達式的能力;

那么正則表達式要怎么寫呢?

其實很簡單,英文的區間是a-z,那么只要能選中每一個英文就好,正則是/[a-z]{1}/,選擇后,需要記錄,那么變成了/([a-z]{1})/,英文是區分大小寫的/([a-z]{1})/i,需要全局查找匹配,最終的正則:/([a-z]{1})/ig

 

來自:https://github.com/mishe/blog/issues/146

 

 本文由用戶 nzmw4668 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!