Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Регулярное выражение (исключить определенные буквы) (https://javascript.ru/forum/misc/74093-regulyarnoe-vyrazhenie-isklyuchit-opredelennye-bukvy.html)

tai 13.06.2018 11:02

Регулярное выражение (исключить определенные буквы)
 
Добрый день!
Помогите с регулярным выражением.
Необходимо разрешить ввод в поле только русских букв (кроме й, з, ё, ы, ъ, ь), цифр, пробела и знака "/".

Пробовал так
[^ёйзъыь][а-я0-9/\\s]*

Находил еще такой вариант
(?(?=[a-z])[^ite]|^$)
, но все-равно не проходит (1. первым все-равно может быть запрещенный символ, 2. ограничение только 2 символа )

tai 13.06.2018 11:14

нужно только русские символы, цифры, пробел и слэш. но при этом запретить буквы й, з, ё, ы, ъ, ь

tai 13.06.2018 11:17

document.querySelector('input').oninput = e => e.target.value = e.target.value.replace(/[йзёыъьa-z]/gi, '');

а как-то можно через регулярное выражение все символы убрать (кроме пробела и слэша)?

ksa 13.06.2018 11:19

Цитата:

Сообщение от tai
разрешить ввод в поле только русских букв (кроме й, з, ё, ы, ъ, ь), цифр, пробела и знака "/"

Как вариант...

var r=/^([цукенгшщхфвапролджэячсмитбю]|\s|\d|\\)*$/i;
alert(r.test('ПрисуОЛнв12 \прВАл'));

j0hnik 13.06.2018 11:21

<input type="text">
	<script>
document.querySelector('input').oninput = e => e.target.value = e.target.value.replace(/[^цукенгшщхфвапролджэячсмитбю\s\d\/]/gi, '');
	</script>

j0hnik 13.06.2018 11:22

Цитата:

Сообщение от tai
а как-то можно через регулярное выражение все символы убрать (кроме пробела и слэша)?

при вводе?

j0hnik 13.06.2018 11:28

<input type="text" oninput="this.value = this.value.replace(/[^цукенгшщхфвапролджэячсмитбю0-9\s\/]/gi, '')">

Alexandroppolus 13.06.2018 11:38

<input type="text">
	<script>
document.querySelector('input').oninput = e => e.target.value = e.target.value.replace(/[^а-я\s\d\/]|[йзёыъь]/gi, '');
	</script>


есть небольшая засада - если редактируем в середине строки, и например вбили букву "ы", то курсор улетает в конец. Надо перед заменой сохранять позицию курсора, потом восстанавливать

Aetae 13.06.2018 12:03

<input type="text" pattern="[А-ЖИК-ЩЭ-Яа-жик-щэ-я\d \\]+" onkeydown="var reg = /^[а-жик-щэ-я\d \\]$/i; if(event.key.length == 1 && !reg.test(event.key)) event.preventDefault();">


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