2009年6月3日 星期三

JavaScript統計字串中內某字元或字串出現次數

帖子:什麼函數可以讓一個計算一個字符串內出現了幾次另一個字符

帖子的題目寫的已經很明白了,也就是統計一個字符串內指定字符的出現次數。例如cainiao中,a出現現了兩次。那麼應該有一個函數能夠正確地統計出類似的值。久仰正則表達式的大名(其實學過好幾次都忘了),記得正好可以解決這個問題。

看看cloudchen給出的使用正則表達式的代碼:


var str = "cloudchen";
var find = "c";
var reg = new RegExp(find,"g")
var c = str.match(reg);
alert(c?c.length:0)


var reg = new RegExp(find,"g")一句建立了一個正則表達式,也可以寫為:

var reg = /c/g;

c即要匹配的字符,其中g表示全局搜索。match則返回匹配的字符(串)。這樣也就獲得了字符串中指定字符出現的次數。這是一個很正規的做法。

split用來統計字符的出現次數

只能用太有才了來形容「我佛山人」,他給出了如下的代碼:


MsgBox UBound(Split("blueideablueideabbs","b"))

VBS的,但是用JS也一樣。重要的是這個思路,簡直是太簡單了!用字符串的split方法將其分為數組,數組的length-1就是字符的出現次數。代碼修改為JavaScript如下:


function test(){
var str = "www.cainiao8.com";
alert(str.split("c").length-1);
alert(str.split("w").length-1);
}

效果如下,首先顯示的是「c」字符的次數,然後是「w」字符的出現次數。

網誌存檔