一个新人理解正则表达式

知识点

1、表单验证:针对于<form></form>

①:非空验证(去空格)   非空验证是什么呢,就是说 当我输入一个账号的时候不能输入一个空格就完事了,一个空格或者多个空格绝对不是账号,我们接收一个账号的时候首先要做的就是把他的前后空格给去掉,然后判断一下他是不是空的,如果是空的那么就提示他输入有误。

②:对比验证(跟一个值对比)    就是用一个提前设定好的的值去和我们输入进去的值进行对比看看是不是一样的,如果是一样的话那么继续运行,如果不是一样的那么进行提示错误。

③:范围验证(根据一个范围进行判断)    就是提前设定好一个范围数值,看看我们输入的数值在不在这个范围之内,如果在范围之内那么通过,否则报错。

④:固定格式验证     如:电话号码、身份证号、信用卡卡号等,这些需要用正则表达式来进行验证。

⑤:其他验证    就是一些不常用的验证比如一些超市的会员卡编号等。

2、正则表达式(判断我们输入的内容是否符合所写的这个正则表达式)

书写规则:左右两边各有一条前斜杠    / 中间写正则表达式 /

^  匹配开头     $  匹配结尾     /^va----以va为开头    /$va----以va为结尾

\d 在正则表达式当中代表0~9之间任意一个数字

\w 在正则表达式当中代表任意一个字母或者数字(范围比\d要大)

\s 一个任意的字符串

{n} 把左边的表达是重复N遍 如:\d{5}----把\d重复5遍(取0~9之间的任意数值5遍)

{m,n} 把左边的表达式最少重复m遍,最多重复n遍 例题同上

{m,} 把左边的表达式最少重复m遍,最多不限

+ 左边表达式至少出现一遍,最多不限相,相当于{1,}

* 左边表达式至少出现0遍,最多不限相,相当于{0,}

? 左边表达式要么出现0次要么出现1次,相当于{0,1}

|----代表或者    ()----代表优先级    \----代表转义

3、事件

时间的三要素:事件源、事件数据、事件处理程序(加入return false是阻止默认操作)

onclick----鼠标单击触发

ondblclick----鼠标双击触发

onmouseover----鼠标移动到上面时触发

onmouseout----鼠标离开时触发

onmousemove----鼠标在上面移动时触发

onchange----只要内容改变是触发

onblur----失去焦点时触发

onfocus----获得焦点时触发

onkeydown----按键按下的时候触发

onkeyup----按键抬起来的时候触发

onkeypress----用户结束完成之后才开始进行调用  系统按钮不接受比如箭头键功能键无法识别

常用的正则表达式:

匹配国内电话号码:d{3}-d{8}|d{4}-d{7}

评注:匹配形式如:0511-4405222或021-87888822

匹配腾讯QQ号:[1-9][0-9]{4,}

评注:腾讯QQ号从10000开始

匹配中国邮政编码:[1-9]d{5}(?!d)

评注:中国邮政编码为6位数字

匹配身份证:d{15}|d{18}

评注:中国身份证为15位和18位

匹配IP地址:d+.d+.d+.d+

评注:提取IP地址时有用

时间: 2024-12-28 18:11:56

一个新人理解正则表达式的相关文章

作为一个新人,怎样学习嵌入式Linux?

作为一个新人,怎样学习嵌入式Linux?被问过太多次,特写这篇文章来回答一下. 在学习嵌入式Linux之前,肯定要有C语言基础.汇编基础有没有无所谓(就那么几条汇编指令,用到了一看就会).C语言要学到什么程度呢?越熟当然越好,不熟的话也要具备基本技能.比如写一个数组排序.输入数字求和什么的.学C语言唯一的方法是多写程序多练习,编译出错没关系,自己去解决:执行出错没关系,自己去分析.以前我是用VC来练习C语言的,经常去尝试着写一些C语言竞赛的题目.它们是纯C.纯数学.纯逻辑的题目,不涉及界面这些东

深入理解正则表达式环视的概念与用法

在<深入理解正则表达式高级教程-环视>中已经对环视做了简单的介绍,但是,可能还有一些读者比较迷惑,今天特意以专题的形式,深入探讨一下正则表达式的环视的概念与用法. 深入理解正则表达式环视的概念与用法 一.环视的概念 (一)环视概念与匹配过程示例 示例一:简单环视匹配过程 (二)什么是消耗正则的匹配字符? 示例二:一次匹配消耗匹配字符匹配过程 示例三:多次匹配消耗匹配字符匹配过程 二.环视的类型 (一)肯定和否定 (二)顺序和逆序 · 两种类型名称组合 · 四种组合的用法 四种组合正则与环视的摆

作为一个新人,如何学习嵌入式Linux?

作为一个新人,如何学习嵌入式Linux?被问过太多次,特写这篇文章来回答一下. 在学习嵌入式Linux之前.肯定要有C语言基础.汇编基础有没有无所谓(就那么几条汇编指令,用到了一看就会).C语言要学到什么程度呢?越熟当然越好,不熟的话也要具备基本技能.比方写一个数组排序.输入数字求和什么的.学C语言唯一的方法是多敲代码多练习,编译出错没关系,自己去解决:运行出错没关系.自己去分析.曾经我是用VC来练习C语言的.常常去尝试着写一些C语言竞赛的题目. 它们是纯C.纯数学.纯逻辑的题目.不涉及界面这些

一个例子理解threadLocal用法

ThreadLocal可以使对象达到线程隔离的目的.话不多说直接上代码: /** * 一个例子理解threadLocal * * 一个单例模式的类 */ public class SingleThreadLocalTest { private static SingleThreadLocalTest single = new SingleThreadLocalTest(); private ThreadLocal<String> threadLocal = new ThreadLocal<

我们为之奋斗过的C#-----C#的一个简单理解

我们首先来简单叙述一下什么是.NET,以及C#的一个简单理解和他们俩的一个区别. 1 .NET概述 .NET是Microsoft.NET的简称,是基于Windows平台的一种技术.它包含了能在.NET Framework平台运行的所有编程语言. 2 C#概述 他是专门为.NET平台设计的一种语言. 3 .NET与C#的区别 .NET是一种平台,这种平台可以编译多种语言例如:VB,J#,而C#只是一种语言. 4 IDE IDE全称(Itergrated Developer Environment)

一个新人对于DW标签的理解

标签呢分为 一.一般标签 一般标签内又分为 ① 格式控制标签 格式控制标签的书写格式是: <font .....></font>  以font为开头以/font为结尾 font的后面 可以包含有color=""(颜色)size=""(字体大小)face=""(选择字体) 一下所有要修改的内容都是在间括号中间: <b>要加粗的字体</b>    字体加粗 <i>要倾斜的字体</i&g

理解正则表达式

https://www.oschina.net/question/12_9507 一 前言 对于正则表达式,相信很多人都知道,但是很多人的第一感觉就是难学,因为看第一眼时,觉得完全没有规律可寻,而且全是一堆各种各样的特殊符号,完全不知所云. 其实只是对正则不了解而以,了解了你就会发现,原来就这样啊正则所用的相关字符其实不多,也不难记,更不难懂,唯一难的就是组合起来之后,可读性比较差,而且不容易理解,本文旨在让大家对正则有一个基本的了解,能看得懂简单的正则表达式,写得出简单的正则表达式,用以满足日

个人理解正则表达式——懒惰匹配

问题描述 本文链接:http://www.hcoding.com/?p=130 初学正则表达式的时候都有一个疑问,例如:需要匹配串 "_abc_123_" 中 第一对"_"之间的字符,刚开始学习正则表达式的时候会写成 "/_\w*_/",匹配的结果就是"abc_123" 而不是"abc"了:大神说加上一个问号,"/_\w*?_/",这时候匹配的结果就是"abc". 我

理解正则表达式的匹配关系

疑问:  正则表达式所表示的字符串是属于目标字符串的子串,还是目标字符串属于正则表达式所表示的字符串之一? 这一点经常容易搞混!! 下面是自己的理解,记录在这里,也帮助自己理清这个关系: 正则表达式是含有元字符或元字符序列的特殊字符串,这些元字符或元字符序列有不同的含义,因此正则表达式表示了某一类字符串, 特殊情况下,正则表达式不包含元字符,那么正则表达式就是一个普通的字符串. 正则表达式“匹配”一个字符串,这个匹配有两层意思,第一个是指它是一个操作符,而操作数是正则表达式和目标字符串,就像sh