javascript - 正则表达式在所有未完成的小数前放置一个前导零 || .5 = 0.5

标签 javascript regex string decimal

<分区>

我正在尝试创建一个正则表达式,将“5+.34+3”之类的字符串转换为“5+0.34+3”。基本上,我试图在所有没有前导零的小数前添加一个前导零。


一些例子

<表类="s-表"> <头> 输入 输出 改变 <正文> ".34" "0.34" (小数前加零) "1.45" "1.45" (无变化) "66+.33+22+.32" "66+0.33+22+0.32" (不带一的小数前加零 "5+.22" "5+0.22" (.22前加零)

非常感谢您尝试解决这个问题!

(如果还有其他关于堆栈溢出的问题,请告诉我,以便我记下这个问题)

最佳答案

一个人想要替换任何没有数字字符前缀的小数点分隔符。因此,一个有效的方法是使用 replace 运行一个带有 negative lookbehind 的正则表达式哪个做 capture小数点分隔符。

正则表达式看起来像这样... /(?<!\d)(\.)/g ... 读起来是这样的 ...

  • / ... /g ...通过...在全局范围内应用该模式
  • / ... (\.)/g ... 捕获预期的分隔符 ...
  • / (?<!\d) ... /g ... 这不是 ( <! ) 前面加上一个数字 ( \d ) ...

const sample = `
  .34
  1.45
  66+.33+22+.32
  5+.22 5+0.22 5+.22`;

const regXNonLeadingDigitDecimalSeparator = (/(?<!\d)(\.)/g);

console.log(
  'original ...',
  sample
);
console.log(
  'sanitized ...',
  sample.replace(regXNonLeadingDigitDecimalSeparator, '0$1')
);

console.log(
  'some other separator sample ...\n',
  '0,45; ,78; 0,78; 0.9; .9 =>',
  '0,45; ,78; 0,78; 0.9; .9'.replace((/(?<!\d)(,)/g), '0$1')
)
.as-console-wrapper { min-height: 100%!important; top: 0; }

关于javascript - 正则表达式在所有未完成的小数前放置一个前导零 || .5 = 0.5,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66123414/

相关文章:

java - 如何将随机 int 转换为 String 以在 if/else 中使用?

c++ - 将文本作为字符串发送与引号之间的文本之间的区别

javascript - 处理 Ajax 调用期间丢失的图像资源

javascript - 仅在加载类时运行我的函数

javascript - 如何遍历DOM准备树结构数组

Javascript正则表达式将图像文件发送到asp.net中的FileUpload控件

javascript - 如何将字符串中的所有表情符号替换为Unicode JS

javascript - 使用 account-ui 包创建用户时如何添加 user.profile?

java - 为什么这个字符串不匹配我的正则表达式?

用于将字符串限制为最大长度的 Python 函数