js正则:input 输入限制

news/2024/11/29 8:44:31/

这里写自定义目录标题

  • 正则:input 输入限制(IP和数值类型规则限制输入)
  • 核心方法 input 输入框的 oninput 监听事件
    • 1、IP输入检验及限制
    • 2、数值(含负数、保留两位)输入检验及限制

正则:input 输入限制(IP和数值类型规则限制输入)

有些情况下,需求要求我们在form表单输入就立即做出相应的限制,而非输入完成后再做检验。因此,这时候就需要用到一边输入一边匹配规则的限制了。

核心方法 input 输入框的 oninput 监听事件

1、IP输入检验及限制

上代码:

<template><div><input maxlenght="15"placeholder="IP输入限制"oninput="value=value.replace(/[^\d.]/g,'').replace(/\.{2,}/g,'.').replace(/^0(\d)$/g,'$1').replace(/\.0\d$/g,'.$1').replace(/[3-9]\d\d|2[6-9]\d|25[6-9]|\d{4,}/g,'255').replace(/^(\d{1,3}\.)(\d{1,3}\.)(\d{1,3}\.)(\d{1,3})/,'$1$2$3$4')"></input></div>
</template>
// 注
replace(/[^\d.]/g,'') // 限制输入仅为数字和点
replace(/\.{2,}/g,'.') // 限制输入点不能连续输入超过2个
replace(/^0(\d)$/g,'$1') // 限制0为开头时,不能再输入0且01将替换为1
replace(/\.0\d$/g,'.$1') // 限制点后面的0为开头时,不能再输入0且01将替换为1
replace(/[3-9]\d\d|2[6-9]\d|25[6-9]|\d{4,}/g,'255') // 限制输入超过255时,替换为255
replace(/^(\d{1,3}\.)(\d{1,3}\.)(\d{1,3}\.)(\d{1,3})/,'$1$2$3$4') // 限制IP输入超过0.0.0.0格式后,无法再继续输入,比如错误格式 0.1.2.3.4

以上就能完美限制IP输入格式

2、数值(含负数、保留两位)输入检验及限制

<template><div><input maxlenght="15"placeholder="数值(含负数、保留两位)输入限制"oninput="value=value.replace(/[^\d.-]/g,'').replace(/(\d)-/g,'$1').replace(/^-\.$/g,'-0.').replace(/^-0+(\d)$/g,'-$1').replace(/^\./g,'0.').replace(/^0+(\d)$/g,'$1').match(/^-?\d*(\.?\d{0,2})/g)"></input></div>
</template>
// 注
replace(/[^\d.-]/g,'') // 限制输入仅为数字、点和负号
replace(/(\d)-/g,'$1') // 限制输入数字后不可输入负号-
replace(/^-\.$/g,'-0.') // 限制-和.一起时,替换为-0.开头的数值
replace(/^-0+(\d)$/g,'-$1') // 限制-和0为开头时,替换为-01为-1
replace(/^\./g,'0.') // 限制点.为开头时,替换为0.开头的数值
replace(/^0+(\d)$/g,'$1') //限制0为开头时,不能再输入0且01将替换为1
match(/^-?\d*(\.?\d{0,2})/g) // 最后校验是否满足数字格式

以上就能完美限制数值输入格式了!
当然,这个还是需要做最后的 isNaN()判断,因为可能存在0.或-0.这样悬停的输入状态!


http://www.ppmy.cn/news/32660.html

相关文章

【数据结构与算法】双向带头循环链表(附源码)

目录 一.前言 二.双向带头循环链表的结构 三.接口实现 A.初始化 ListNodeinit 和销毁 Listdestroy 1.ListNodeinit 2.Listdestroy B.插入 1.头插 ListNodepushfront 2.尾插 ListNodepushback 3.插入 ListNodeinsert C.删除 1.头删 ListNodepopfront 2.尾删 ListN…

CSS实现一个展示框

&#x1f31f;所属专栏&#xff1a;前端只因变凤凰之路&#x1f414;作者简介&#xff1a;rchjr——五带信管菜只因一枚&#x1f62e;前言&#xff1a;该系列将持续更新前端的相关学习笔记&#xff0c;欢迎和我一样的小白订阅&#xff0c;一起学习共同进步~&#x1f449;文章简…

fs 模块

fs 全称为 file system &#xff0c;称之为 文件系统 &#xff0c;是 Node.js 中的 内置模块 &#xff0c;可以对计算机中的磁盘进行操作。本章节会介绍如下几个操作&#xff1a;1. 文件写入2. 文件读取3. 文件移动与重命名4. 文件删除5. 文件夹操作6. 查看资源状态一、文件写入…

C++【list容器模拟实现函数解析】

list容器&&模拟实现函数解析 文章目录list容器&&模拟实现函数解析一、list容器使用介绍二、list容器模拟实现及函数解析2.1 list结构体创建2.2 迭代器封装2.21 构造函数&#xff1a;2.22 前置和后置及- -2.23 解引用2.24 判断相等2.25 箭头重载2.26 第二个和第…

Qss样式表语法

QSS样式表语法 更多精彩内容&#x1f449;个人内容分类汇总 &#x1f448;&#x1f449;QSS样式学习 &#x1f448;文章目录QSS样式表语法[toc]概述一、样式规则二、选择器类型三、子控件四、伪状态五、样式表冲突解决六、级联七、继承八、命名空间中的控件概述 Qt样式表的概念…

2021蓝桥杯真题公约数(填空题) C语言/C++

题目描述 本题为填空题&#xff0c;只需要算出结果后&#xff0c;在代码中使用输出语句将所填结果输出即可。 如果整数 a 是整数 b 的整数倍&#xff0c;则称 b 是 a 的约数。 请问&#xff0c;有多少个正整数既是 2020 的约数&#xff0c;又是 3030 的约数。 运行限制 最大…

【Pytorch】 理解张量Tensor

本文参加新星计划人工智能(Pytorch)赛道&#xff1a;https://bbs.csdn.net/topics/613989052 这是目录张量Tensor是什么&#xff1f;张量的创建为什么要用张量Tensor呢&#xff1f;总结张量Tensor是什么&#xff1f; 在深度学习中&#xff0c;我们经常会遇到一个概念&#xff…

关于进制转换

十进制转二进制953转换成2进制953/2476....1476/2238....0238/2119....0119/259....159/229....129/214....114/27....07/23...13/21...1结果就是1110111001用953除以2&#xff0c;得出的商&#xff0c;如果大于2&#xff0c;就继续除以2&#xff0c;直到不大于为止&#xff0c…