Ограничьте все специальные символы, кроме»/», в моем текстовом поле ввода в html

#javascript #html #regex

Вопрос:

Я хочу ограничить все специальные символы внутри моего текстового поля ввода, за исключением символа / . Как мне это сделать?

Изменить: Я хочу, чтобы мое текстовое поле было похоже на этот вводимый текст

Ответ №1:

Фрагмент, на который указала ваша ссылка, выглядит так, как вы можете видеть ниже. Всякий раз, когда нажимается клавиша, в то время как поле ввода фокусировки сфокусировано, IsAlphanumeric() вызывается функция. Если функция возвращается true , отображается символ. Если функция возвращается false , нажатие клавиши игнорируется.

 var specialKeys = new Array();
specialKeys.push(8); //Backspace
specialKeys.push(9); //Tab
specialKeys.push(46); //Delete
specialKeys.push(36); //Home
specialKeys.push(35); //End
specialKeys.push(37); //Left
specialKeys.push(39); //Right      

function IsAlphaNumeric(e) {
var keyCode = e.keyCode == 0 ? e.charCode : e.keyCode;
var ret = ((keyCode >= 47 amp;amp; keyCode <= 57) || (keyCode >= 65 amp;amp; keyCode <= 90) || (keyCode >= 97 amp;amp; keyCode <= 122) || (specialKeys.indexOf(e.keyCode) != -1 amp;amp; e.charCode != e.keyCode));
return ret;
} 
 <form>
<input type="text" id="text1" onkeypress="return IsAlphaNumeric(event);" ondrop="return false;" onpaste="return false;">
</form> 

Комментарии:

1. Я обновил свой вопрос, пожалуйста, взгляните

2. Да, это так, но я хочу, чтобы он ограничивал все специальные символы, кроме / . Приведенный здесь код ограничивает все специальные символы, включая /

3. Нет, это не так. Ты пробовал это сделать? Мой код проверяет наличие ключевого кода 47, код во фрагменте-нет.

Ответ №2:

Этот код сделал свое дело:

 var specialKeys = new Array();
specialKeys.push(8);  //Backspace
specialKeys.push(9);  //Tab
specialKeys.push(46); //Delete
specialKeys.push(36); //Home
specialKeys.push(35); //End
specialKeys.push(37); //Left
specialKeys.push(39); //Right
     
function IsAlphaNumeric(e) {
    var keyCode = e.keyCode == 0 ? e.charCode : e.keyCode;
    var ret = ((keyCode >= 48 amp;amp; keyCode <= 57) || (keyCode >= 65 amp;amp; keyCode <= 90) || (keyCode >= 97 amp;amp; keyCode <= 122) || (specialKeys.indexOf(e.keyCode) != -1 amp;amp; e.charCode != e.keyCode));
    //console.log(e.keyCode);
    document.getElementById("error").style.display = ret ? "none" : "inline";
    if(e.charCode==47){
        ret=true;
        document.getElementById("error").style.display ="none";
    }
    return ret;
}