Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 21.11.2019, 13:42
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

input.value = input.value.replace(/^.{4}/, "****");
Ответить с цитированием
  #12 (permalink)  
Старый 21.11.2019, 13:53
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,225

Сообщение от sektorgena
Надо чтобы он не все символы закрывал, а только первые 4.
Сообщение от LinaInverse
.replace(/./gm, "*");
Заменить более сложным вариантом...

var val='012345678';
alert(val.replace(/^.{1,4}/,function(Str){
	return Str.replace(/./g,'*');
}));
Ответить с цитированием
  #13 (permalink)  
Старый 21.11.2019, 22:38
Аватар для Malleys
Профессор
Отправить личное сообщение для Malleys Посмотреть профиль Найти все сообщения от Malleys
 
Регистрация: 20.12.2009
Сообщений: 1,714

Сообщение от laimas
input.value = input.value.replace(/^.{4}/, "****");
И как получить само значение? Как скопировать? Как работать с таким значением?

Я думаю, что вы не хотите записать в базу данных «звёздочки»... Вы хотите, чтобы обычное значение выглядело так, чтобы первые четыре символа были представлены при помощи «звёздочек»!
<input class="my-secret-field">

<style>

input.my-secret-field:not(.mirror) {
	position: absolute;
	background: transparent;
	border-color: transparent;
	color: transparent;
	caret-color: black;
}

input.my-secret-field:not(.mirror)::selection {
	color: transparent;
	background: rgba(33, 150, 243, 0.25);
}

input.my-secret-field.mirror {
	pointer-events: none;
}

input.my-secret-field {
	-webkit-appearance: none;
	font-family: monospace;
}
	
</style>

<script>

function inputHandler(input, mirror) {
	return function() {
		mirror.value = input.value.replace(/^.{1,4}/,
			match => "•".repeat(match.length)
		);
	};
}
	
for(const input of document.querySelectorAll("input.my-secret-field")) {
	const mirror = input.cloneNode(true);
	const handler = inputHandler(input, mirror);
	mirror.classList.add("mirror");
	mirror.removeAttribute("name"); // рони, laimas, почему я удаляю имя?
	input.after(mirror);
	input.addEventListener("input", handler);
	handler();
}

</script>
Ответить с цитированием
  #14 (permalink)  
Старый 21.11.2019, 23:04
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,121

Сообщение от Malleys
почему я удаляю имя?
чтоб не было дубля в отправке на сервер информации?
Ответить с цитированием
  #15 (permalink)  
Старый 21.11.2019, 23:49
Аватар для Malleys
Профессор
Отправить личное сообщение для Malleys Посмотреть профиль Найти все сообщения от Malleys
 
Регистрация: 20.12.2009
Сообщений: 1,714

рони, да! Значение со «звёздочками» ни к нему на сервере, это только для представления!
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
innerHTML для TR - чем заменить? Непонятливый Общие вопросы Javascript 2 31.10.2012 15:04
При написании в alert русских слов выходят непонятные символы rafael Общие вопросы Javascript 3 13.12.2011 08:28
Заменить символы в строке, затем преобразовать строку в html majahead jQuery 2 03.03.2011 16:52
Как заменить встроенную функцию Alert? KIVagant Общие вопросы Javascript 4 22.04.2010 11:13
Заменить символы в строке artlayers jQuery 5 17.03.2010 18:54