在管道输入中每4个字符添加一个空格

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在管道输入中每4个字符添加一个空格相关的知识,希望对你有一定的参考价值。

我有一个输入,用户需要在其中输入24个字符。我试图用regExp制作一个管道来做到这一点,但是没有添加空格。

我已经看过可以做到这一点的功能,但是我想通过regExp使其保持简单。

import  Pipe, PipeTransform  from "@angular/core";

@Pipe(
  name: 'formatBankAcc'
)

export class FormatBankAccPipe implements PipeTransform 
  transform(value: string) 
    if(value != null)
      value.replace(/[^\dA-Z]/g, '')
      .replace(/(.4)/g, value)
      .trim();
      console.log(value);
    
    return value;
  

答案

这里的问题是,您实际上没有在正则表达式中添加任何space。相反,您将再次用相同的值替换文本。另外,您不使用替换值更新value。您只返回当前值,例如:

function transform(value) 
  if (value != null) 
    value.replace(/[^\dA-Z]/g, '')
      .replace(/(.4)/g, value)
      .trim();
    console.log(value);
  
  return value;


transform('123456789') //=> 123456789 ... returns same value

以上是关于在管道输入中每4个字符添加一个空格的主要内容,如果未能解决你的问题,请参考以下文章

在 Java 中每隔 3 个逗号分割一个字符串

在 Blazor 中的 4 个字符后插入空格

用js实现在textarea中每输入15个字符串自动换行 输入汉字超过15个就去加/n自动换行

正则实现文本框只能输入16个数字,每4位数字后添加一个空格

几个输入输出函数的总结

android格式的edittext,每4个字符后显示空格