2015-08-24 47 views
1

我有以下一段代碼來計算一個字符串中的特殊字符數......不知它不會返回我想計數字符串中的特殊字符

var sectionToCheck = $('input').val(); //it could be any kind of string entered in an input field such as "Hello @&% everybody" 
var specialChars = /^[[email protected]#$%^&*()_+\-=\[\]{};':"\\|,.<>\/?]*$/; 
var allFoundCharacters = sectionToCheck.match(specialChars); 
console.log(allFoundCharacters); 

它返回一個空值爲變量allFoundCharacters。請提供任何提示?

+3

是我們應該去猜測什麼''sectionToCheck是? – Alex

+0

你能編輯你的問題並添加一個示例輸入嗎? – Aserre

+1

[在Javascript中計算字符串中字符出現次數]的可能重複(http://stackoverflow.com/questions/881085/count-the-number-of-occurences-of-a-character-in- a-string-in-javascript) –

回答

5

你已經包含了^,它匹配字符串的開頭,$爲結尾。你的正則表達式只能匹配字符串,完全由組成特殊字符。

+2

爲了完整起見:var specialChars = /[[email protected]#$%^&*()_+\-=\[\]{};':"\\|,.<>\/?]/ gi;' – Alex

+0

這個傢伙,它解決了我的問題 – Nicc

0

試試這個:

/[@#$%^&*()_+\-=\[\]{};':"\\|,.<>\/?]/g 

全碼:

var sectionToCheck = "$%klds$"; 
 
var allFoundCharacters = sectionToCheck.match(/[@#$%^&*()_+\-=\[\]{};':"\\|,.<>\/?]/g); 
 
alert(allFoundCharacters.length);//count

2

試試這個。希望它能幫助你。

var str= "This is a string."; 

//的正則表達式g說搜索整個字符串,而不是隨便找的第一次出現

var count = (str.match(/is/g) || []).length; 

alert(count);