Предполагая: str value = 'Это какой-то текст';JS/jQuery: сколько символов в текстовом поле
Я хочу рассчитать, сколько 't' случаев, как это сделать?
Предполагая: str value = 'Это какой-то текст';JS/jQuery: сколько символов в текстовом поле
Я хочу рассчитать, сколько 't' случаев, как это сделать?
Это гораздо проще с регулярными выражениями
var regex = new RegExp("t", "gi")
var count = "This is some text".match(regex).length;
Дам вам отсчеты t
в данной строке (игнорировать регистр).
Вы можете проверить его here.
Далее ссылка
RegExp 1
RegExp 2
String
String.match()
Простое решение заключается в петле
var count = 0;
for(var i = 0; i < str.length; i ++) {
if(str.charAt(i) === 't')
++count;
}
Вы также можете использовать str.toLowerCase();
, если вы не хотите быть чувствительны к регистру.
Несколько способов сделать это ...
function countChar(str, searchChar) {
var num=0;
for (var i=0; i<str.length; ++i) {
if (str[i] == searchChar)
++num;
}
return num;
}
использовать как:
NUMT = countChar ('Это некоторый текст', 'т');
<button onclick="alert(countCharacter('abcdea', 'a'));"> Test! </button>
<script type="text/javascript">
function countCharacter(sample, characterToFind) {
var result = 0;
for(i = 0;i<sample.length;i++) {
if(sample[i] === characterToFind) {
result++;
}
}
return result;
}
</script>
Я думаю, что вы все делаете это более сложным, чем это должно быть. Используйте регулярное выражение. Это также нечувствительно к регистру. Если вам нужен регистр с регистром, удалите i после g.
var str = "This is some text";
var pattern = /t/gi;
alert(str.match(pattern).length);
Сделайте его короче.
var str = "This is some text";
alert(str.match(/t/gi).length);
Regex на самом деле довольно дорого, поэтому решение использовать раскол, вероятно, является самым быстрым решением предложил –
var sValue = 'This is some text';
var tCount = sValue.split("t").length - 1;
alert("t appears " + tCount + " times");
Если вы хотите считать вхождений всех букв, то лучше использовать одну петлю, как показано в других ответах.
Это прекрасно, пока вы не переключаетесь на использование регулярного выражения для 'split()', где у вас возникнут проблемы с IE с двумя соседними совпадениями. –
@Tim yep, это решение «не регулярное выражение», с использованием regex нет никакого смысла в split в любом случае. :) –
Может быть, может помочь вам здесь
.replace().length
касаемо
Wazzy
лучшее решение. – Gere