如何计算字符串javascript函数中只接受@ #这样的特殊字符

how to count special character in string javascript function which accept only like @ #

本文关键字:特殊字符 何计算 计算 函数 javascript 字符串      更新时间:2023-09-26

在我的项目中,我有任务用户输入字符计数并显示计数,它工作正常,但我想添加只允许特殊字符的正则表达式

<!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>

工作示例:

<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) {
  	target.innerHTML = matches.length;
  }
}  
</script>

你可以试试这个,它匹配所有的特殊字符

<!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>