Проверка поля телефона в html, чтобы разрешить цифры и текст, но не @

В этом коде можно использовать только цифры - предпочтение должно быть разрешено вводить тире и / или скобки даже текст, такой как ext. но не адрес электронной почты.

Не могли бы вы помочь мне отредактировать этот код? Очень признателен.

  <input type = "text" maxlength = "40" onkeypress = "return event.charCode >= 48 && event.charCode <= 57" required name = "phone" id = "phonecontactselection">

По сути, вы должны разрешить любой символ, но не @, не так ли?

Juorder Gonzalez 15.01.2019 22:07
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
2
1
44
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Вам нужна функция для проверки только символа @, чтобы избежать этого, поэтому:

function avoidEmailPartCharacter(event) {
  const code = event.keyCode || event.which;
  if (code === 64) {
    event.preventDefault();
  }
}

затем вы передаете функцию обработчику ввода keypress, например:

<input type = "type" keypress = {avoidEmailPartCharacter(this)} />

это должно сработать

Предпочтительно переместить такую ​​логику из шаблона в специальную функцию, однако, в случае, если вам действительно нужно сделать это встроенным, можно сопоставить входной символ с регулярным выражением следующим образом:

<input type = "text"
       maxLength = "40"
       onkeypress = "return !!String.fromCharCode(event.which || event.charCode).match(/[\dext\[\]\-]/)"
       required
       name = "phone"
       id = "phonecontactselection"
>

Удивительный! Большое спасибо. Ты лучший

Tat 16.01.2019 15:26

@Tat С удовольствием!

antonku 16.01.2019 16:24
Ответ принят как подходящий

Вы можете использовать контрольная работа и класс персонажа и перечислить свои символы, которым вы позволите сопоставить.

В этом случае сопоставьте один из [, ], символ a-z, точку или дефис:

[\][a-z.-]

<input 
 type = "text" 
 maxlength = "40" 
 onkeypress = "return /[\][a-z.-]/.test(String.fromCharCode(event.which || event.keyCode));"   
 required 
 name = "phone" 
 id = "phonecontactselection"
>

Другие вопросы по теме