#javascript
#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>
Комментарии:
1. вы можете использовать свойство match javascript
2. нет, не могли бы вы объяснить мне, пожалуйста
3. смотрите эту ссылку: w3schools.com/jsref/jsref_match.asp
4. но я хочу вернуть count
5. var res = str.match(/@/g). длина;
Ответ №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) {
target.innerHTML = matches.length;
}
}
</script>
Ответ №2:
вы можете попробовать этот, он соответствует всем специальным символам
<!DOCTYPE html>
<script type="text/javascript">
function countChars()
{
var textarea = document.getElementById('data').value;
var specialCharacters = textarea.match(/[@#$%^amp;*()_ -=[]{};':"\|,.<>/?]/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>