2015-01-26 4 views
2

Я знаю JavaScript, который ограничивает ввод некоторых специальных символов или цифр и т. Д., Используя значение charcode и ascii.Блокировка ввода любого другого алфавита, кроме английского

Есть ли в любом случае, что я могу заблокировать людей, вступающих в какой-либо другой язык (я имею в виду алфавит), ожидающего английского? Более конкретно, как я могу заблокировать людей, въезжающих на китайский или какой-либо другой неанглийский алфавит в текстовое поле, и заставить их строго вводить только английское имя алфавита?

Благодаря

+0

AFAIK вы должны использовать регулярное выражение либо блокировать не английские символы или разрешить только английские символы – dippas

+1

@dippas - ты легенда мат :) – lock

+0

Сначала вы должны определить, что такое «на английском языке " является. Если вы действительно можете определить это, вы можете заблокировать другие языки. Но на самом деле вы не можете это определить. –

ответ

1

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

function removeSpecials(evt) { 
var input = document.getElementById("myinput"); 
var patt = /[^\u0000-\u007F ]+/; 
setTimeout(function() { 
    var value = input.value; 
    input.value = value.replace(patt,""); 
},100); 

}

Дело в том,: создать шаблон, чтобы обнаружить все специальные символы

var patt = /[^\u0000-\u007F ]+/;; 

и я заменяю входное значение

value.replace(patt,""); 

Вот FIDDLE

+0

Этот код должен удалить только последний заполненный символ. Я изменю пример, чтобы удалить все из ввода. Вместо этого вы должны заменить вместо этого – nanndoj

+0

. Это не работает. Пожалуйста, взгляните на http://jsfiddle.net/s9h3pu56/1/ – lock

+0

Чек это! http://jsfiddle.net/nanndoj/s9h3pu56/4/ – nanndoj

0

Вы можете легко ограничить пользователя к определенному набору символов, проверяя их ввод с чем-то вроде inputString.match(/^[A-Za-z]+$/). Это поймает языки, такие как китайский, хотя существует множество языков, которые имеют почти тот же алфавит, что и английский, и поэтому его нельзя легко заблокировать.

+0

Спасибо, не проблема. Моя главная цель - блокировать такие языки, как китайский, японский и т. Д., Который не соответствует английскому алфавиту. – lock

1

Самый простой способ блокировать все входы не-ASCII, вероятно, будет

/^[\x00-\xff]+$/.test(input); 

Это выражение возвратит true если input состоит из чисто ASCII символов.

Он вернет false, если обнаружен какой-либо символ не-ascii.


Вы можете настроить диапазон принятых символов ascii в соответствии с вашими потребностями. \x00-\x55 включает в ASCII коды полукокса 0-255

Смежные вопросы