首页 > 解决方案 > Javascript中的正则表达式 - 需要允许小数作为第一个字符

问题描述

我有一个 React 小部件,可让您输入价格。我通过 regex.test() 输入输入的文本,以确保数字中只允许使用数字和 1 个小数。但是,我使用的正则表达式不允许小数点作为第一个字符(例如 -> .05)。我目前的正则表达式是

`/^(\d+\.?\d{0,9}|\.\d{1,9})$/`

我尝试\.?在前面添加一个可选的,但它不起作用。谢谢你的帮助!

标签: javascriptregex

解决方案


您可以使用

/^\d*(?:\.\d+)?$/

const testFunc = (str) =>{
  return str.length > 0 && /^\d*(?:\.\d+)?$/.test(str)
}

console.log(testFunc(''))
console.log(testFunc('.123'))
console.log(testFunc('1'))
console.log(testFunc('1.123'))
console.log(testFunc('123.123.123'))


推荐阅读