Как я разделяю плохие символы от строки в JS?

Используя регулярные выражения для этого не хорошая идея, как был продемонстрирован подробно в тех других сообщениях.

я предполагаю, что люди продолжают делать его, потому что они не знают ничего лучшего или не заботятся.

синтаксический анализатор будет немного лучше? Возможно, возможно, нет.

я поддерживаю, что отправка электронного письма проверки является лучшим способом проверить его. Если Вы хотите проверить что-нибудь от JavaScript, то проверьте, что он имеет знак там и что-то прежде и после него. Если Вы идете немного более строгие, чем это, Вы risc, сталкивающийся с некоторым синтаксисом, Вы не знали о, и Ваш блок проверки допустимости станет чрезмерно строгим.

кроме того, быть осторожными с этим ваша схема проверки TLD, Вы могли бы найти, что Вы принятие слишком много о том, что позволяется в TLD.

8
задан yugr 25 August 2018 в 09:31
поделиться

2 ответа

Было бы неплохо, если бы для этого был простой RegEx, но я не думаю, что он есть. Насколько я понимаю, вы все еще хотите разрешить такие символы, как% $ # @ и т. Д., Но хотите запретить другие странные символы, такие как вкладки и нули. Если это верно, я считаю, что самым простым способом было бы зациклить каждый символ и оценить код символа ...

function stripCrap(val) {
  var result = '';

  for(var i = 0, l = val.length; i < l; i++) {
    var s = val[i];
    if(String.toCharCode(s) > 31)
      result += s;
  }

  return result;
}

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

val = val.replace(/[^a-z 0-9]+/gi,'');
8
ответ дан 5 December 2019 в 17:39
поделиться

Если у вас есть список «хороших» символов, вы можете создать регулярное выражение, которое соответствует любому символу , а не в вашем списке, и удалить все, что ему соответствует, например, следующее регулярное выражение соответствует чему угодно , кроме букв «a», «q» или «z»:

/[^aqz]+/ig
2
ответ дан 5 December 2019 в 17:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: