【问题标题】:How to convert number in start except last 4 digits in react native如何在开始时转换数字,除了反应本机的最后 4 位数字
【发布时间】:2021-05-06 13:55:13
【问题描述】:

在下面的响应中,当我映射 biomatricData.ninId 时,我得到“43445567665”这个值:

biomatricData.ninId = 43445567665

现在我只需要显示最后 4 位数字,其余的应该像 *

我必须将43445567665 更改为以下格式

喜欢 - *******7665

<View style={{ flexDirection: 'row', marginBottom: 10 }}>
  <RegularText text={'Nin Number :  '} textColor='grey' style={{ marginBottom: 5 }} />
  <Text>{biomatricData.ninId}</Text>
</View>

【问题讨论】:

    标签: javascript reactjs react-native ecmascript-6


    【解决方案1】:

    我们可以使用字符串填充在我们的字符串值中添加 * 符号来转换敏感数据中的字符串

    签出文档以应用字符串填充

    https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/padStart

    【讨论】:

      【解决方案2】:

      可以使用Array这样的方法来实现。

      let numToBeConverted = '43445567665';
      
      function covert(num){
        let arr = Object.values(num);
        return  arr.splice(0, arr.length-4).fill('*').join('')
        + arr.splice(-4).join('');
      }
      
      console.log(covert(numToBeConverted));
      //output - "*******7665"
      

      【讨论】:

        【解决方案3】:

        试试这个代码

        var numToBeConverted = 327364829364;
        String(numToBeConverted).split("").reverse().map((e, i) => i >= 4 ? "*" : e).reverse().join("");
        

        如果你愿意,你可以把它变成一个函数

        function convertToBiometric(num) {
             return String(num).split("").reverse().map((e, i) => i >= 4 ? "*" : e).reverse().join("");
        }
        

        【讨论】:

          【解决方案4】:

          biomatricData.ninId 放入变量中,然后完成下面给出的操作并使用该变量进行显示。

          使用以下正则表达式。

          var str = "43445567665";
          var replaced = str.replace(/.(?=.{4,}$)/g, '*');
          console.log(replaced);

          【讨论】:

          • 可以以this为例
          猜你喜欢
          • 2019-11-20
          • 2022-10-17
          • 1970-01-01
          • 2023-01-22
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2022-08-11
          • 1970-01-01
          相关资源
          最近更新 更多