2016-06-07 2 views
3

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

<script language="Javascript" type="text/javascript"> 

     function onlyAlphabets(e, t) { 
      try { 
       if (window.event) { 
        var charCode = window.event.keyCode; 
       } 
       else if (e) { 
        var charCode = e.which; 
       } 
       else { return true; } 
       if ((charCode > 64 && charCode < 91) || (charCode > 96 && charCode < 123) || charCode == 32) 
        return true; 
       else 
        return false; 
      } 
      catch (err) { 
       alert(err.Description); 
      } 
     } 

    </script> 
<asp:TextBox ID="txtname" runat="server" onkeypress="return onlyAlphabets(event,this);"></asp:TextBox> 
+0

Это, вероятно, будет легче исключить то, что вы не хотите, вместо того, чтобы пытаться включить все, что вы хотите. – wot

ответ

0

я бы, вероятно, сделать что-то вдоль линий, что описано здесь, при добавлении в желаемом пространстве включения: Best way to alphanumeric check in Javascript

Например, проверить этот фрагмент кода:

function allowAlphaNumericSpace(e) { 
 
    var code = ('charCode' in e) ? e.charCode : e.keyCode; 
 
    if (!(code == 32) && // space 
 
    !(code > 47 && code < 58) && // numeric (0-9) 
 
    !(code > 64 && code < 91) && // upper alpha (A-Z) 
 
    !(code > 96 && code < 123)) { // lower alpha (a-z) 
 
    e.preventDefault(); 
 
    } 
 
}
<input type="text" onkeypress="allowAlphaNumericSpace(event)" />

EDIT: Основываясь на ваших комментариях, мое быстрое и грязное решение выглядит следующим образом, хотя я уверен, что лучший вариант должен существовать ... Обратите внимание на переход с «onkeypress» на «onkeyup», чтобы убедиться, что значение обновлено после нового символа вставляется.

function allowAlphaNumericSpace(thisInput) { 
 
    thisInput.value = thisInput.value.split(/[^a-zA-Z0-9 ]/).join(''); 
 
}
<input type="text" onkeyup="allowAlphaNumericSpace(this)" />

+0

, но он принимает специальные символы вместе с числами aplhabets. Мне нужно только пространство, но не другие символы spl. –

+0

@kavithavemula. Я преобразовал код в фрагмент, который, кажется, работает как ожидалось. Какие специальные символы разрешены? –

+0

функция onlyAlphabets (e, t) { var regexp = новый RegExp (/^[a-zA-Z0-9] * $ /); if (window.event) { keynum = e.keyCode; } else if (e.which) { keynum = e.which; } var test = regexp.test (String.fromCharCode (keynum)); тест на возврат; } приведенный выше код работает отлично для меня, принимая только числа символов и пробелов, но если я копирую и вставляю специальные символы, которые он принимает, но он не должен принимать даже копию, вставляя символы, отличные от этих трех, как я могу это сделать –

2

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

var regexp = new RegExp(/^[a-zA-Z0-9 ]+$/); 
var str="sqdqsd qsd125"; 
var str2="sqdqsdqsd12;5"; 
console.log(regexp.test(str)); 
console.log(regexp.test(str2)); 

https://jsfiddle.net/Tintin37/7Lj7r9zp/1/

РЕДАКТИРОВАТЬ

Я добавил немного фрагмент;)

function onlyAlphabets(e, t) { 
 
    var regexp = new RegExp(/^[a-zA-Z0-9 ]*$/); 
 
    console.log(regexp.test(t.value)); 
 
    return regexp.test(t.value); 
 
}
<input type="text" onkeyup="return onlyAlphabets(event,this);" />

EDIT2

С желаемого поведения;)

function onlyAlphabets(e, t) { 
 
    var regexp = new RegExp(/^[a-zA-Z0-9 ]*$/); 
 
    if (window.event) { 
 
    keynum = e.keyCode; 
 
    } else if (e.which) { 
 
    keynum = e.which; 
 
    } 
 
    var test = regexp.test(String.fromCharCode(keynum)); 
 
    return test; 
 

 
}
<input type="text" onkeypress="return onlyAlphabets(event,this);" />

0

Причина ваш код не примет цифры, потому что номера имеют свой собственный код символа, а также. Код символа на 1, например, 48. Для включения номера, вы должны включить это в вашей, если заявление:

(charCode >= 48 && charcode <= 57) 

Не знаю, почему пространства не работают, но посмотреть, если выше помогает!

+0

Мне нужна проверка javascript, которая позволяет вводить только символы с номерами при вводе в текстовое поле. Можете ли вы мне помочь? Текстовое поле не должно принимать кроме чисел и символов, как я могу это сделать. –

+0

. Добавление этого кода в ваш код должно допускать символы (которые уже имеют код) и цифры с той частью, которую я написал. – sahilkmr78

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