Взятие последних пяти цифр числа из пользовательского ввода в REACT.jsx - PullRequest
0 голосов
/ 14 февраля 2020

По сути, в настоящее время я использую this.props.x (это ввод пользователя) для получения информации с другой страницы. Так this.props.x - это число, например «12345 12345 54321» в трех группах по 5 цифр. Я хочу заменить первые 10 цифр звездочками и оставить последние 5 цифр. Как мне манипулировать this.props.x таким образом, чтобы я мог сделать это возможным?

Спасибо.

Это то, что я пробовал.

{this.props.x ? (
              <p>
                Card number: <br />
                {"***** *****" + this.props.x}
              </p>
            ) : (
              ""
            )

I хочу, чтобы конечный результат выглядел как ***** ***** 54321

Ответы [ 5 ]

2 голосов
/ 14 февраля 2020

, если x - это (целое) число, то в нем не может быть пробела, и все ваши 15 di git будут вместе. В этом случае вы можете использовать что-то вроде

{"***** *****" + (this.props.x % 100000)}

И если это строка, как вы упомянули в своем вопросе с пробелами после каждых 5 символов, то вы можете использовать Array.prototype.slice()

{"***** *****" + (this.props.x.slice(12)}
1 голос
/ 14 февраля 2020

Возможно, попробуйте превратить в строку, чтобы использовать метод substr.

const string = this.props.x.toString()
const lastFive = string.substr(string.length - 5);

Надеюсь, это поможет.

1 голос
/ 14 февраля 2020

Для строкового использования -

{this.props.x ? (
          <p>
            Card number: <br />
            {"***** *****" + this.props.x.slice(-5)}
          </p>
        ) : (
          ""
        )
}

Для числового использования -

{this.props.x ? (
          <p>
            Card number: <br />
            {"***** *****" + this.props.x%100000}
          </p>
        ) : (
          ""
        )
}

Надеюсь, это поможет!

0 голосов
/ 14 февраля 2020

Вы также можете использовать функцию fill:

let arr = "123451234554321".split("");
 arr = arr.fill("*" , 0 , 10).join("");


console.log(res);

и вывод:

**********54321
0 голосов
/ 14 февраля 2020

Используйте простые JS:

let str = "12345 12345 54321",
    len = str.length - 1,
    newstr = "",
    i = 0;

while (i != 5) {
    newstr = str[len] + newstr;
    len--; i++;
}

console.log(newstr)
...