Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 19.12.2019, 13:08
Профессор
Отправить личное сообщение для Янковиц Посмотреть профиль Найти все сообщения от Янковиц
 
Регистрация: 17.11.2014
Сообщений: 403

В чём разница?
Добрый день. Есть два похожих кода:
1
$(document).on('change keyup input click oninput', 'input', function() {
	let pattern = $(this).data( 'pattern' );
	if ( pattern !== '' && pattern !== 'undefined' ) {
		this.value = this.value.replace( pattern, '' );
	}
});

2
$(document).on('change keyup input click oninput', 'input', function() {
	let pattern = $(this).data( 'pattern' );
	if ( pattern !== '' && pattern !== 'undefined' ) {
		this.value = this.value.replace( /[^а-яА-Яa-zA-Z\s]/g, '' );
	}
});

Во втором случае выполняется валидация, а в первом нет. В обоих случаях pattern в console.log показывает /[^а-яА-Яa-zA-Z\s]/g. В чём причина?
Ответить с цитированием
  #2 (permalink)  
Старый 19.12.2019, 13:19
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

Янковиц,
в одном случае pattern String(последовательность символов) в другом RegExp(шаблон для поиска).
Ответить с цитированием
  #3 (permalink)  
Старый 19.12.2019, 13:28
Профессор
Отправить личное сообщение для Янковиц Посмотреть профиль Найти все сообщения от Янковиц
 
Регистрация: 17.11.2014
Сообщений: 403

И как тогда String привести к RegExp?
Ответить с цитированием
  #4 (permalink)  
Старый 19.12.2019, 13:28
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

RegExp from pattern
Янковиц,
$(document).on('change keyup input click oninput', 'input', function() {
	let pattern = $(this).data( 'pattern' );
	if ( pattern !== '' && pattern !== 'undefined' ) {
        let [_, pattern , flags] = pattern.split('\/');
		this.value = this.value.replace( new RegExp(pattern , flags), '' );
	}
});

Последний раз редактировалось рони, 19.12.2019 в 13:33.
Ответить с цитированием
  #5 (permalink)  
Старый 19.12.2019, 13:30
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

В первом случае pattern, это строка, чтобы она стала шаблоном рег. выражения нужно

let pattern = eval($(this).data( 'pattern' ));


А лучше держать в атрибуте сам шаблон, а в обработчике

let pattern = new RegExp($(this).data( 'pattern' ), 'g');
Ответить с цитированием
  #6 (permalink)  
Старый 19.12.2019, 13:30
Профессор
Отправить личное сообщение для Янковиц Посмотреть профиль Найти все сообщения от Янковиц
 
Регистрация: 17.11.2014
Сообщений: 403

Спасибо большое
Ответить с цитированием
  #7 (permalink)  
Старый 19.12.2019, 13:46
Профессор
Отправить личное сообщение для Янковиц Посмотреть профиль Найти все сообщения от Янковиц
 
Регистрация: 17.11.2014
Сообщений: 403

Ещё один вопрос. В шаблоне прописаны допустимые буквы: а-яА-Яa-zA-Z, но не пропускает буквы öçğ и другие
Как прописать эту ситуацию?
Ответить с цитированием
  #8 (permalink)  
Старый 19.12.2019, 13:56
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

Янковиц,

добавить нужное
Ответить с цитированием
  #9 (permalink)  
Старый 19.12.2019, 14:05
Профессор
Отправить личное сообщение для Янковиц Посмотреть профиль Найти все сообщения от Янковиц
 
Регистрация: 17.11.2014
Сообщений: 403

Я заведомо не знаю, какие буквы ещё могут использоваться
Ответить с цитированием
  #10 (permalink)  
Старый 19.12.2019, 14:13
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

Янковиц,
пропишите ненужные символы[-_=+\d] вместо [^a-z]
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
new: в чем разница? oblomov86 Общие вопросы Javascript 2 24.11.2012 22:03
В чем разница между двумя записями? Shitbox2 jQuery 5 22.11.2012 06:56
Какая разница между post запросами jquery и ajax? Rooner jQuery 2 18.06.2012 14:29
.snapshotLength и просто .length в чём разница BIOHAZARD Events/DOM/Window 2 30.11.2008 18:20
Одиночки. В чем разница? Snipe Общие вопросы Javascript 49 07.06.2008 15:58