Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Как разрешить в input только англ. буквы, цифры, тире и точку? (https://javascript.ru/forum/jquery/55038-kak-razreshit-v-input-tolko-angl-bukvy-cifry-tire-i-tochku.html)

karnitsky 11.04.2015 10:14

Как разрешить в input только англ. буквы, цифры, тире и точку?
 
Как в инпуте разрешить использовать только -
  1. Англ. алфавит
  2. Цифры
  3. Тире (-)
  4. Точку (.)
  5. Только строчные буквы (это реализовал)
  6. Запретить больше 1 раза подряд (-- или ..) вводить тире и точку.
  7. Запретить вводить тире и точку в начале слова или в конце.

Пока нашел только запрет русс. букв + преобразование в строчные буквы -

<input type="text" onkeyup="return LoginCheck(this);" />


<script type="text/javascript">
function LoginCheck(input) {
    var value = input.value;
    input.value=input.value.toLowerCase();
    var re = /а|б|в|г|д|е|ё|ж|з|и|ё|к|л|м|н|о|п|р|с|т|у|ф|х|ц|ч|ш|щ|ъ|ы|ь|э|ю|я/gi;
    if (re.test(value)) {
        value = value.replace(re, '');
        input.value = value;
    }
}
</script>

theKingOfJava 11.04.2015 11:42

Цитата:

Сообщение от karnitsky
Если точка или тире вводится в конце или в начале слова, то удалить.

Ну ты чо, будешь весь день добавлять по ходу дела пункты? Определись уже блеать, что тебе нужно. Последний твой пункт невозможно выполнить за одну операцию, нужен дополнительный check
<html>
<head>
<meta charset="windows-1251" />
</head>
<body>
<input id="i">
<button id="check">check</button>
<script>

i.oninput=function(){
 this.value=this.value
  .replace(/ /g, ".")
  .replace(/_/g, "-")
  .replace(/\.+/g, ".")
  .replace(/\-+/g, "-")
  .replace(/[^\w.-]|[A-Z]|^[.-]/g, "")
}
check.onclick=function(){
 i.value=i.value.replace(/[.-]$/, "")
}













</script>

</body>
</html>


Часовой пояс GMT +3, время: 18:21.