Как посчитать количество указанных c символов, введенных пользователем в текстовой форме - PullRequest
1 голос
/ 25 мая 2020

Извините, если это кажется новым ie вопросом, но мне было интересно, есть ли способ подсчитать количество определенных c символов, таких как точка или sla sh, в формате стиля URL, который есть у человека поступил.

var regex = /https?:\/\/(www\.)?[A-Za-z=:.]{1,12}\.[A-Za-z]{1,6}\b([-A-Za-z0-9%_\+=?&//#]){1,250}/
var validx = regex.test(document.getElementById("webname").value);

Это регулярное выражение и как я вызываю ввод текста. Поэтому мне было интересно, есть ли способ подсчитать количество символов, введенных пользователем.

Я думал, что могу просто вызвать функцию, содержащую проверку, но она не работает

function dotcheck()
{
   var dots = detect.webname.value;
   if (dots.indexOf(".") > 0){}

функция, в которой, как я думал, вы можете увидеть / подсчитать количество точек

if (dotcheck = false){
            messages.innerHTML = 'Safe';

оператор if, который я использовал для вызова функции.

Любая помощь будет принята с благодарностью, и если есть что-то еще, что вам понадобится от меня, не стесняйтесь спрашивать.

1 Ответ

0 голосов
/ 24 июля 2020

Подсчет любого символа в String - это просто количество совпадений, возвращаемых String.match(RegExp).

Поскольку вы конкретно упомянули периоды, а это специальные символы RegExp, вы не можете просто написать /./g для вашего RegExp. Вы должны избежать его с помощью \, например:

/\./g

Флаг g, добавленный в конец, означает получение всех совпадений, а не только первого.

const string = 'https://stackoverflow.com/questions/62008355';
const slashes = /\//g;
const count = string.match(slashes).length;
console.log(count); // 4 slashes

const string = 'https://stackoverflow.com/questions/62008355';
const periods = /\./g;
const count = string.match(periods).length;
console.log(count); // 1 period
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...