【问题标题】:I would like to separate a character string with spaces XX XXX XXX [duplicate]我想用空格 XX XXX XXX 分隔一个字符串 [重复]
【发布时间】:2021-07-27 13:41:50
【问题描述】:

我是一个非常年轻的开发人员,我找不到解决方案。

我有一个条目,用户在其中输入一个数字,应该像这样分开 XX XXX XXXX

通过这样做,我将 XXX XXX XXX 之类的数字分开 但这不是我想要的

result = '123456789'.replace(/(\d)(?=(\d\d\d)+(?!\d))/g, "$1 ");

我可能需要这样的东西,但我阻止了它

.replace(/"(..)(...)(....)","$1 ""$2 ""$3 "/g)

如果您能给我任何帮助,将不胜感激。

【问题讨论】:

  • 我找到了答案.replace(/(\d{2})(\d{3})(\d{4})/g, '$1 $2 $3')
  • 非常感谢您的回答,这对我很有帮助。现在我希望用户能够修改输入中输入的数字。目前,如果他删除了一个数字,他无法替换它。
  • const [beneficiary, setBeneficiary] = useState('') <InputText maxLength={9} value={beneficiary.replace(/(\d{2})(\d{3})(\d{4})/g, '$1 $2 $3')} onChange={(e) => {setBeneficiary(e.target.value) }} />

标签: javascript reactjs regex


【解决方案1】:

您可以简单地查找您需要的组(2 位、3 位、4 位)并根据需要进行替换

const result = "123456789".replace(/(\d{2})(\d{3})(\d{4})/,"$1 $2 $3")
console.log(result)

以上假设它们始终是数字,当然,如果不是,您可以酌情使用不同的匹配,但想法保持不变。

【讨论】:

    【解决方案2】:

    您需要一个不带引号的正则表达式和一个仅包含组的替换字符串。

    const result = '123456789'.replace(/(..)(...)(....)/, '$1 $2 $3');
    
    console.log(result);

    【讨论】:

      猜你喜欢
      • 2011-12-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-24
      • 1970-01-01
      • 2012-11-20
      • 2011-04-07
      相关资源
      最近更新 更多