2016-10-24 51 views
0

在我的項目中我有任務給用戶輸入的字符進行計數並顯示計數它工作正常,但我想添加只允許特殊字符的正則表達式如何計算字符串中的特殊字符javascript函數只接受像@#

<!DOCTYPE html> 
<script type="text/javascript"> 
function countChars(countfrom,displayto) 
{ 
    var len = document.getElementById(countfrom).value.length; 
    document.getElementById(displayto).innerHTML = len; 
} 
</script> 


<label>Enter Character</label><br> 
<textarea id="data" cols="40" rows="5" 
onkeyup="countChars('data','charcount');" onkeydown="countChars('data','charcount');" 
onmouseout="countChars('data','charcount');"> 
</textarea><br> 
<span id="charcount">0</span> 
</html> 
+0

你可以使用 – Araz

+0

沒有你能解釋JavaScript的資產匹配我請 – sms

+0

看到此鏈接:http://www.w3schools.com/jsref/jsref_match.asp – Araz

回答

1

工作示例:

<label>Enter Character</label><br> 
 
<textarea id="data" cols="40" rows="5" 
 
onkeyup="countChar(this, '@', 'charcount');" onkeydown="countChar(this, '@', 'charcount');" 
 
onmouseout="countChar(this, '@', 'charcount');"> 
 
</textarea><br> 
 
<span id="charcount">0</span> 
 

 

 
<script> 
 
function countChar(container, char, targetId) { 
 
    target = document.getElementById(targetId); 
 
    var regEx = new RegExp(char, 'g'); 
 
    var matches = container.value.match(regEx); 
 
    
 
    if(matches) { 
 
    \t target.innerHTML = matches.length; 
 
    } 
 
} 
 
</script>

1

你可以試試這個,這個匹配所有特殊字符

<!DOCTYPE html> 
 
<script type="text/javascript"> 
 
function countChars() 
 
{ 
 
    var textarea = document.getElementById('data').value; 
 
    var specialCharacters = textarea.match(/[@#$%^&*()_+\-=\[\]{};':"\\|,.<>\/?]/g); 
 

 
    if(specialCharacters == null) return; 
 

 
    document.getElementById('charcount').innerHTML = specialCharacters.length; 
 
} 
 
</script> 
 

 

 
<label>Enter Character</label><br> 
 
<textarea id="data" cols="40" rows="5" 
 
onkeyup="countChars();" onkeydown="countChars();" 
 
onmouseout="countChars();"></textarea> 
 
<span id="charcount">0</span> 
 
</html>

相關問題