#javascript
#javascript
Вопрос:
Я работаю над проектом и хотел заменить символы, кроме последних 4 символов, на javascript. Нужна небольшая помощь, спасибо
var string = $('div.reg-summary-rows:nth-child(5) p:nth-child(2) span.reg-summary-answers').innerHTML;
var len = string.length;
var sub = len - 4;
var string2 = "*****"
var newString = string.slice(sub);
document.querySelector("div.reg-summary-rows:nth-child(5) p:nth-child(2) span.reg-summary-answers").innerHTML = string2 ;
Комментарии:
1. Может
"*".repeat(string.length - 4) string.slice(-4)
быть?
Ответ №1:
Что-то вроде
const foo = '1234567890';
const limit = 4;
const head = foo.slice(0, -limit);
const tail = foo.slice(-limit);
console.log(head.replace(/./g, '*') tail);
Ответ №2:
Одним из возможных решений является использование функции замены String.replace() таким образом:
const replaceAllExceptLast = (str, n) =>
{
let token = "*";
return str.replace(/./g, (match, offset) =>
{
return offset < str.length - n ? token : match;
});
}
console.log(replaceAllExceptLast("Hello World", 1));
console.log(replaceAllExceptLast("Hello World", 4));
console.log(replaceAllExceptLast("Hello World", 7));
.as-console {background-color:black !important; color:lime;}
.as-console-wrapper {max-height:100% !important; top:0;}
Обратите внимание, регулярное выражение будет соответствовать каждому символу, но мы собираемся выполнить замену только в том случае, если offset
соответствующий элемент удовлетворяет условию.