Только английские символы

1

У меня есть URL-адрес типа ввода, и клиент хочет принимать только символы ENGLISH на входе

Функция Keypress и Blur - это то, что у меня есть, но в размытии оно все еще принимает этот likr inout "建築 家 test.com"

<input type="url" id="url" required pattern="https?://.+" placeholder="http://example.com">

    $("#url").on("keypress", function(event) {

    var englishAlphabetDigitsAndWhiteSpace = /[a-zA-Z0-9!@#$%^*_|:/.]/g;

    var key = String.fromCharCode(event.which);

    if (event.keyCode == 8 || event.keyCode == 37 || event.keyCode == 39 || englishAlphabetDigitsAndWhiteSpace.test(key)) {
        return true;
    }

    return false;
   });

$("#url").blur(function(e){
    var input = $(this).val();
    var regex = /[a-zA-Z0-9!@#$%^*_|:/.]/g; 
    if(regex.test(input)) {
      alert("OK");
    }
    else {
        alert("no Japanese allowed");
        return false;  
    }
});
  • 1
    if ([...'建築家test.com'].find(s => s.codePointAt(0) > 255)) { console.log('invalid input') }
  • 0
    Я также попробую ваш ответ
Показать ещё 4 комментария
Теги:

1 ответ

1
Лучший ответ

Не могли бы вы попробовать следующее регулярное выражение:

^([a-zA-Z0-9!@#$%^*_|:/.])*$

или тот, в зависимости от того, принимаете ли вы пустую строку или нет как действительную запись.

^([a-zA-Z0-9!@#$%^*_|:/.])+$

И последнее, но не менее важное: если вы хотите проверить, что ваш ввод является хорошо сформированным UR, посмотрите на следующую ссылку:

Какое лучшее регулярное выражение проверяет правильность строки?

  • 0
    я попробую ваше решение
  • 0
    Надеюсь, это поможет вам! ;-)
Показать ещё 4 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню