为了账号安全,请及时绑定邮箱和手机立即绑定

如何在 Js 中的字符串中添加“/”,但仅当使用正则表达式在上一步中未找到斜杠时才将其反转?

如何在 Js 中的字符串中添加“/”,但仅当使用正则表达式在上一步中未找到斜杠时才将其反转?

人到中年有点甜 2023-07-14 14:57:58
我的问题有点奇怪,我试图使用 Replace() 和 Regex 按以下方式转换字符串:输入“203012”(因此如果没有斜杠),输出应为“12/2030”从输入“12/2030”(因此如果已经有斜杠)输出应保持不变我知道我可以在使用replace()之前使用条件来检查字符串,但我试图仅使用replace()和正则表达式来实现。我尝试过使用类似的const result = input.replace(  /\//g, replaced => replaced.replace(    /^(.{4})(.{2})/, '$2/$1'  ))当然,此代码替换了之前的最终斜杠,但在重新插入“/”时它总是反转值。有谁知道如何实现这一目标?谢谢。
查看完整描述

1 回答

?
汪汪一只猫

TA贡献1898条经验 获得超8个赞

您可以使用

input = input.replace(/^(\d{4})(\d{2})$/, '$2/$1')

请参阅正则表达式演示。细节:

  • ^- 字符串的开头

  • (\d{4})- 捕获组 1 ( $1):四位数字

  • (\d{2})- 捕获组 2 ( $2):两位数

  • $- 字符串末尾。

如果字符串仅包含 6 位数字,则会出现匹配,并且/会在第 2 组和第 1 组值之间插入 a。

如果有斜杠,则不会匹配,因此不会添加斜杠。

查看 JavaScript 演示:


const strings = ['203012', '12/2030']; 
strings.forEach(x => console.log(x, '=>', x.replace(/^(\d{4})(\d{2})$/, '$2/$1')))


查看完整回答
反对 回复 2023-07-14
  • 1 回答
  • 0 关注
  • 86 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信