Да, почтовые данные в безопасности. Но происхождение этих данных не так. Таким образом, кто-то может заставить пользователя с помощью JS войти на ваш сайт, просматривая веб-страницу злоумышленника.
Чтобы предотвратить это, django отправит случайный ключ как в файле cookie, так и в данных формы. Затем, когда пользователи отправляют сообщения POST, он проверяет, идентичны ли два ключа. В случае обмана пользователя сторонний веб-сайт не может получить файлы cookie вашего сайта, что приводит к ошибке аутентификации.
tl; dr: Generic Pattern Counter
// THIS IS WHAT YOU NEED
const count = (str) => {
const re = /YOUR_PATTERN_HERE/g
return ((str || '').match(re) || []).length
}
Для тех, кто пришел сюда и ищет общий способ подсчета количества вхождений шаблона регулярного выражения в строке, и не хочет этого чтобы выйти из строя, если вхождений нет, этот код - то, что вам нужно. Вот демонстрация:
/ * * Пример * / const count = (str) => {const re = / [az] {3} / g return ((str || '') .match (re) || []). length} const str1 = 'abc, def, ghi' const str2 = 'ABC, DEF, GHI' console.log («'$ {str1}' содержит $ {count (str1)} вхождений шаблона» / [az] {3} / g'`) console.log (`'$ {str2}' содержит $ {count (str2)} вхождений шаблона '/ [az] {3} / g'`)
Исходный Ответ
Проблема с вашим исходным кодом заключается в том, что вам не хватает глобального идентификатора :
>>> 'hi there how are you'.match(/\s/g).length;
4
Без части регулярного выражения g
оно будет соответствовать только первому вхождению и остановится на нем.
Также обратите внимание, что ваше регулярное выражение будет считать последовательные пробелы дважды:
>>> 'hi there'.match(/\s/g).length;
2
Если это нежелательно, вы можете сделать это:
>>> 'hi there'.match(/\s+/g).length;
1