2012-02-24 4 views
0

Ниже приведен сценарий ввода только алфавитов, чисел, пробела, дель, обратного пространства. В этом коде мне нужно внести изменения, если «вход» в первой позиции является «белым пространством», а в пользовательском вводе нет aphanumeric characters, он должен вернуть false else true.Сложная операция строки

JS

function usrInp(evt) { 
var char = (evt.which) ? evt.which : event.keyCode 
if (char > 64 && inp < 91 || char > 96 && char < 123 || char > 47 && char < 58 || char  == 127 || char == 8 || char == 32) { 
    return true; 
} 
else { 
    return false; 
} 
} 

ФОРМА HTML

<form name="one" id="one"> 
    <input type="text" name="abc" id="abc" onkeypress="return usrInp(event)" /> 
</form> 
+0

Вы пытались использовать регулярное выражение? – Fermin

+0

@Fermin Как реализовать его здесь ...? – sandbox

ответ

0

Почему не регулярное выражение?

return input.match(/^[\w\s]*$/g) != null 

Это возвращает true, если вход содержит только A-Z, 0-9, пробелы или символы подчеркивания.

+0

Но мне нужно проверить, является ли «ввод» в первой позиции «белым пространством», и в пользовательском вводе нет никаких дополнительных афанумерных символов, он должен возвращать false, а для всех остальных случаев он должен возвращать true. Это означает, что строка может иметь «белые пробелы» далее ... – sandbox

+0

Редактировать, немного улучшить. – Jivings

+0

@sandbox Так начинается с пробела? И никаких других букв или цифр? – Jivings

0

Использование события keypress не будет захватывать ключ backspace, для этого вам потребуется использовать keyup. Если вы хотите получить значение ascii нажатой клавиши, вы можете использовать:

function usrInp(evt) { 
    var char = (evt.which) ? evt.which : event.keyCode 
    return String.fromCharCode(char).match(/^[A-Z0-9 _]*$/); 
} 
Смежные вопросы