js 常用正则表达式分析详解
1.整数或者小数:/^((0{1}|[1-9]{1}[0-9]+)\.{1}[0-9]+|[1-9]{1}[0-9]*|0)$/
分析:分类讨论,如果是小数,则有两种形式 0.111对应的是 0{1}\.[0-9]+ 100.1111对应的是 [1-9]{1}[0-9]+\.[0-9]+ 所以整体小数的正则表达式就是:
(0{1}|[1-9]{1}[0-9]+)\.{1}[0-9]+) 整数的正则表达式就是 [1-9]{1}[0-9]+,再加上0这种可能性 所以合并起来就是 /^((0{1}|[1-9]{1}[0-9]+)\.{1}[0-9]+|[1-9]{1}[0-9]+|0)$/
2.只能输入数字/^[0-9]+$/
分析:这个很简单,^表示开头,$表示结束,所以这里的意思就是以数字开头,以数字结束,+表示至少要一个数字
3.只能输入n位的数字 /^\d{n}$/。
分析:\d等价于[0-9]匹配数字,{n}表示匹配的个数是n个
4.只能输入至少n位的数字:/^\d{n,}$/。
分析:{n,}匹配大于等于n个
5.只能输入m~n位的数字:。/^\d{m,n}$/
分析:{m,n}匹配m个~n个(包括m和n)
6.只能输入零和非零开头的数字:/^(0|[1-9][0-9]*)$/。
分析:m|n匹配m或者n 所以这里匹配0或者[1-9][0-9]* [1-9]匹配非0数字,[0-9]*匹配任意个数的数字
7.只能输入有两位小数的正实数:/^(0|[1-9][0-9]+).[0-9]{2}$/。
分析:小数只有两种形式,0.12 和111.12类型 分类讨论,小数点之前可以敲定是0|[1-9][0-9]+ 小数点之后是[0-9]{2}
8.只能输入非零的正整数:/^\+?[1-9][0-9]*$/。
分析:+?表示0个或者一个
9.只能输入非零的负整数:/^\-[1-9][0-9]*$/。
分析:^\-匹配开头为-
10.只能输入长度为3的字符:/^.{3}$/。
分析:.表示除了换行和行结束符外的任何字符
js 常用正则表达式分析详解的更多相关文章
- EditPlus正则表达式中英文详解(附常用事例操作)
http://www.cnblogs.com/JustinYoung/articles/editplus_regular_expression.html EditPlus正则表达式中英文详解 \t T ...
- maven常用插件配置详解
常用插件配置详解Java代码 <!-- 全局属性配置 --> <properties> <project.build.name>tools</proje ...
- js调试工具Console命令详解
这篇文章主要介绍了js调试工具Console命令详解,需要的朋友可以参考下 一.显示信息的命令 复制代码 代码如下: < !DOCTYPE html> < html> &l ...
- js 常用正则表达式表单验证代码
正则表达式使用详解 简介 简单的说,正则表达式是一种可以用于模式匹配和替换的强有力的工具.其作用如下:测试字符串的某个模式.例如,可以对一个输入字符串进行测试,看在该字符串是否存在一个电话号码模式或一 ...
- 【第六课】Nginx常用配置下详解
目录 Nginx常用配置下详解 1.Nginx虚拟主机 2.部署wordpress开源博客 3.部署discuz开源论坛 4.域名重定向 5.Nginx用户认证 6.Nginx访问日志配置 7.Ngi ...
- Javascript常用的设计模式详解
Javascript常用的设计模式详解 阅读目录 一:理解工厂模式 二:理解单体模式 三:理解模块模式 四:理解代理模式 五:理解职责链模式 六:命令模式的理解: 七:模板方法模式 八:理解javas ...
- JavaScript正则表达式详解(二)JavaScript中正则表达式函数详解
二.JavaScript中正则表达式函数详解(exec, test, match, replace, search, split) 1.使用正则表达式的方法去匹配查找字符串 1.1. exec方法详解 ...
- Memcache的使用和协议分析详解
Memcache的使用和协议分析详解 作者:heiyeluren博客:http://blog.csdn.NET/heiyeshuwu时间:2006-11-12关键字:PHP Memcache Linu ...
- ExtJs常用布局--layout详解(含实例)
序言: 笔者用的ExtJs版本:ext-3.2.0 ExtJs常见的布局方式有:border.form.absolute.column.accordion.table.fit.card.anchor ...
随机推荐
- 使用ant的jar任务打jar包
<?xml version="1.0" encoding="UTF-8"?> <project name="javaTest&quo ...
- IOS 新消息通知提示-声音、震动
一.APNS 1.注册 [[UIApplication sharedApplication] registerForRemoteNotificationTypes:UIRemoteNotificati ...
- 高级UIKit-01(总结基础UIKit)
总结: 如果相同的控件大于等于3个就拖成一个属性选用outlet Collection 提升局部变量的方法:传参或改变全局 创建CGImage对象要释放,因为ARC只会自动释放OC方法,这个是CG框架 ...
- 解决QT Creator在Linux下的输入法问题
https://vjudge1.github.io/2014/04/02/type-chinese-in-linux/http://blog.csdn.net/ubuntutouch/article/ ...
- 分享非常有用的Java程序 (关键代码) (三)---创建ZIP和JAR文件
原文:分享非常有用的Java程序 (关键代码) (三)---创建ZIP和JAR文件 import java.util.zip.*; import java.io.*; public class Zip ...
- JVM调优总结(二)-一些概念
Java对象的大小 基本数据的类型的大小是固定的,这里就不多说了.对于非基本类型的Java对象,其大小就值得商榷. 在Java中,一个空Object对象的大小是8byte,这个大小只是保存堆中一个没有 ...
- C# MVC 自学笔记—5 添加模型
==============================翻译============================== 在本节中,您将添加一些类来管理数据库中的电影.这些类将 ASP.NET M ...
- 基于visual Studio2013解决算法导论之006最大堆排序
题目 最大堆排序 解决代码及点评 #include <stdio.h> #include <stdlib.h> #include <malloc.h> #i ...
- kiddouk/redisco
kiddouk/redisco A Python Library for Simple Models and Containers Persisted in Redis
- hdu1151Air Raid
Air Raid Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total S ...