js控制输入框input只能输入数字、小数、负数

export const getNAN = function (val) {
  const t = val.charAt(0)
  // 转化为数字形式--包含小数,负数
  // 先把非数字的都替换掉,除了数字和.
  val = val.replace(/[^\d.]/g, '')
  // 必须保证第一个为数字而不是.
  val = val.replace(/^\./g, '')
  // 保证只有出现一个.而没有多个.
  val = val.replace(/\.{2,}/g, '.')
  // 保证.只出现一次,而不能出现两次以上
  val = val.replace('.', '$#$').replace(/\./g, '').replace('$#$', '.')
  // 如果第一位是负号,则允许添加
  if (t === '-') {
    val = '-' + val
  }
  return val
}
  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 可以使用如下正则表达式: ``` ^-?\d*\.?\d+$ ``` 解释如下: - `^` 匹配字符串的开始 - `-?` 匹配可选的负 - `\d*` 匹配零个或多个数字 - `\.?` 匹配可选的小数点 - `\d+` 匹配一个或多个数字 - `$` 匹配字符串的结尾 因此,该正则表达式可以匹配输入框中的正数和负数。其中,整数部分可以没有,但小数部分至少需要一个数字。例如,可以匹配 `-1.2`、`3.14`、`-0.5` 等格式的数字。 ### 回答2: 正则表达式是一种用来匹配字符串的强大工具。要实现输入框只能输入正数和负数的限制,可以使用以下正则表达式: ``` ^-?\d*\.?\d+$ ``` 解释一下这个正则表达式的含义: - `^` 和 `$` 是起始和结束的锚点,表示整个字符串的开头和结尾。 - `-?` 是一个可选的负,表示可以有一个负或者没有负。 - `\d*` 匹配零个或多个数字。 - `\.?` 匹配零个或一个点。 - `\d+` 匹配一个或多个数字。 这个正则表达式的含义可以总结为:字符串以可选的负开头,后面跟着可选的数字部分(整数或小数),小数部分的开头必须是一个点,且后面必须跟着至少一个数字。 这样,当用户在输入框输入一个数字时,只有满足以上规则的字符串才会被接受。其他任何不满足规则的输入都会被拒绝。 使用这个正则表达式,可以保证只能输入正数和负数。 ### 回答3: 可以使用以下正则表达式来限制输入框只能输入正数和负数: /^(-?\d+)(\.\d+)?$/ 解析: ^(-?\d+) : 匹配一个负(-)后面可以跟一个或多个数字(0-9) (\.\d+)? : 用括括起来,并加上?表示该括内的内容可选,匹配一个小数点(.)后面跟一个或多个数字(0-9) $ : 表示输入的字符串必须完全匹配正则表达式的规则 这个正则表达式可以匹配以下内容: -1.5 3.14 10 但无法匹配: -0.5.2 1.2.3 这样定义的正则表达式能够限制输入框只能输入正数和负数,不允许输入数字字符、多个小数点、以及其他任何特殊字符。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值