当前位置: 首页 > 编程日记 > 正文

正则表达式的基本入门

一、正则表达式基本语法

1. 两个特殊的符号‘^’和‘$’。他们的作用分别指出一个字符串的开始和结束。

2. 其他还有‘*’,‘+’,‘?’这三个符号,表示一个或一序列字符重复出现的次数

"ab{2}"  ---表示一个字符串有一个a后面跟着2个b(“abb”);

"ab{2,}"  ---表示一个字符串有一个a后面跟着至少2个b;

"ab{3,5}"  ---表示一个字符串有一个a后面跟着3到5个b;

“ab*” == ab{0,}

"ab+" == ab{1,}

"ab?" == ab{0,1}

请注意,你必须指定范围的下限,如{0,2},而不是{,2};

3. 还有一个“|表示“或”操作

"hi¦hello":表示一个字符串里有"hi"或者"hello";
"(b¦cd)ef":表示"bef"或"cdef";
"(a¦b)*c":表示一串"a""b"混合的字符串后面跟一个"c";

4. “."可以替代任何字符

“a.[0-9]”  :表示一个字符串有一个a后面跟这个一个任意字符和一个数字

"^.3$": 表示有任意三个字符的字符串,长度为3个字符s

5. 正则表达式验证控制文本框的输入字符类型
1.只能输入数字和英文的: 
<input οnkeyup="value=value.replace(/[\W]/g,'') " onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\d]/g,''))" ID="Text1" NAME="Text1">

2.只能输入数字的: 
<input οnkeyup="value=value.replace(/[^\d]/g,'') " onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\d]/g,''))" ID="Text2" NAME="Text2">

3.只能输入全角的: 
<input οnkeyup="value=value.replace(/[^\uFF00-\uFFFF]/g,'')" onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\uFF00-\uFFFF]/g,''))" ID="Text3" NAME="Text3">

4.只能输入汉字的: 
<input οnkeyup="value=value.replace(/[^\u4E00-\u9FA5]/g,'')" onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\u4E00-\u9FA5]/g,''))" ID="Text4" NAME="Text4">

6. 正则表达式的应用实例通俗说明

//检验是否全由数字组成

:  /^[0-9]{1,20}$/

这里,

^表示打头的字符要匹配紧跟^后面的规则

$表示打头的字符要匹配紧靠$前面的规则

[]中的内容是可选字符集

[0-9]表示要求字符范围在0-9之间

{1,20}表示数字字符串长度合法为1到20,即为[0-9]中的字符出现次数的范围是1到20次

/^和$/成对使用应该是表示要求整个字符串完全匹配定义的规则,而不是只匹配字符串中的一个子串;

****************************************************************

//校验登录名:只能输入5-20个以字母开头,可带数字,下划线和‘.’的字符串

/^[a-zA-Z]{1}([a-zA-Z0-9]|[._]){4,19}$/

这里,它要求是由大小写字母、数字或者特殊字符集[._]组成

******************************************************************

//校验用户姓名:只能输入1-30个以字母开头的字符串

/^[a-zA-Z]{1,30}$/

*******************************************************************

//校验密码:只能输入6-20个字母、数字、下划线

/^(\w){6-20}$/

这里,\w:用于匹配字母,数字或下划线字符

*******************************************************************

//校验普通电话、传真号码:可以“+”或数字开头,可含有“-” 和 “ ”

/^[+]{0,1}(\d){1,3}[ ]?([-]?((\d)|[ ]){1,12})+$/

 

\d:用于匹配从0到9的数字;

“?”元字符规定其前导对象必须在目标对象中连续出现零次或一次

 

可以匹配的字符串如:+123 -999 999 ; +123-999 999 ;123 999 999 ;+123 999999等

转载于:https://www.cnblogs.com/xiaoxingyiyi/p/5403636.html

相关文章:

多继承中虚基类构造函数的一种调用规则

规则&#xff1a;如果父类中有虚基类(A)&#xff0c;且有一个直接基类(B)是虚基类的子类&#xff0c;那么子类(C或D)若不显式调用虚基类的有参数构造函数&#xff0c;它的直接基类(B)即使在构造列表中调用了非默认构造函数&#xff0c;那么也会直接调用虚基类的默认构造函数。 …

Android 常见异常及解决办法

前言 本文主要记录 Android 的常见异常及解决办法&#xff0c;以备以后遇到相同问题时可以快速解决。 1. java.lang.NullPointerException: Attempt to invoke virtual method void android.widget.TextView.setText(java.lang.CharSequence) on a null object reference 1) …

aws s3 静态网站_如何将静态网站或JAMstack应用托管并部署到AWS S3和CloudFront

aws s3 静态网站S3 and CloudFront are AWS cloud services that make serving static assets powerful and cheap. How can we host a simple static website or JAMstack app on it?S3和CloudFront是AWS云服务&#xff0c;使服务静态资产功能强大且价格便宜。 我们如何在其上…

图像预处理第7步:标准归一化

图像预处理第7步&#xff1a;标准归一化将分割出来的各个不同宽、高的数字字符宽、高统一 //图像预处理第7步&#xff1a;标准归一化 //将分割出来的各个不同宽、高的数字字符宽、高统一 void CChildView::OnImgprcStandarize() {StdDIBbyRect(m_hDIB,w_sample,h_sample);//在…

8. 进制转化的函数

一&#xff0c;表示进制的单词 bin&#xff1a;二进制 oct&#xff1a;八进制 dec&#xff1a;十进制 hex&#xff1a;十六进制二&#xff0c;四种进制的数据表示方式 $bin0b1010; //二进制数字写法&#xff08;暂时不学 &#xff09; …

二叉树广度优先遍历

#include <iostream> using namespace std;struct Node{//二叉树节点int value;Node *left;Node *right; };struct queue{//辅助队列int head;int tail;int len;//队列长度&#xff0c;遍历时用Node ** list;//队列内容void push(Node *n){list[tail] n;len;}Node * pop…

phaser.min.js_如何使用Phaser 3,Express和Socket.IO构建多人纸牌游戏

phaser.min.jsIm a tabletop game developer, and am continually looking for ways to digitize game experiences. In this tutorial, were going to build a multiplayer card game using Phaser 3, Express, and Socket.IO.我是桌面游戏开发人员&#xff0c;并且一直在寻找…

VirtualBox - RTR3InitEx failed with rc=-1912 (rc=-1912)

有一天重启电脑后虚拟机virtual box突然打不开了&#xff0c;提示类似 https://askubuntu.com/questions/900794/virtualbox-rtr3initex-failed-with-rc-1912-rc-1912 参考帖子中查看了一下包的情况dpkg --list virtualbox-* | grep ii 结果&#xff1a;ii virtualbox-dkms …

边工作边刷题:70天一遍leetcode: day 27

Permutation Sequence 原理&#xff1a;一个permutation是n位&#xff0c;在第i位的值取决于有多少个i-1位的组合。这i-1位的组合是在高位pick完之后剩下的数中 细节&#xff1a; 不同于decimal&#xff0c;位数是固定的&#xff0c;所以不能用k>0作为循环条件&#xff08;这…

基本数据结构(图: 基本结构,DFS,prim算法, kruskal算法)

#include <iostream> using namespace std; //约定&#xff1a; //1. 图是由很多节点(VERTEX)构成的, 因此图结构是由一个VERTEX的链表构成的, 每个VERTEX则需要有一个id,也就是start, 取start是为了跟LINE更直观地结合。 //2. 每个节点关联着很多(LINE)构成,因此每个VER…

gatsby_如何使用Gatsby和Leaflet创建夏季公路旅行地图绘制应用程序

gatsbyGet ready for the summer by building your own road trip mapping app with this step-by-step guide!通过此逐步指南&#xff0c;构建自己的公路旅行地图应用&#xff0c;为夏天做好准备&#xff01; What are we going to build? 我们要建造什么&#xff1f; What …

NEFU 1146 又见A+B

又见ab Problem:1146 Time Limit:1000ms Memory Limit:65535K Description 给定两个非负整数A,B,求他们的和。 Input 多组输入&#xff0c;每组输入两个非负整数A和B&#xff08;0<A,B<10^3000&#xff09;&#xff0c;可能会有前缀0&#xff0c;但保证总长度不超过3000…

图的最短路径dijkstra算法

想法是这样的&#xff1a; 1. 最开始要建立4个list&#xff0c;分别存储 a. 所有的Vertex: allVertex[] b. 一个空的Vertex list: emptyVertex[] c. 一个前缀表 previous list(用来回溯路径用): previous[] d. 一个表示最短距离的表(就是表示某个点与0点的最短距离)&#xff1…

JDBC数据源连接池(1)---DBCP

何为数据源呢&#xff1f;也就是数据的来源。我在前面的一篇文章《JDBC原生数据库连接》中&#xff0c;采用了mysql数据库&#xff0c;数据来源于mysql&#xff0c;那么mysql就是一种数据源。在实际工作中&#xff0c;除了mysql&#xff0c;往往还会有Oracle&#xff0c;sql se…

如果成为一名高级安卓开发_什么是高级开发人员,我如何成为一名开发人员?

如果成为一名高级安卓开发Becoming a Senior Developer is something many of us strive for as we continue our code journey and build our career. But what does it actually mean to be a "Senior" Developer?成为一名高级开发人员是我们许多人在继续我们的代…

拍牌神器是怎样炼成的(三)---注册全局热键

要想在上海拍牌的超低中标率中把握机会、占得先机&#xff0c;您不仅需要事先准备好最优的竞拍策略&#xff0c;还要制定若干套应急预案&#xff0c;应对不时之需。既定策略交给计算机自动执行&#xff0c;没有问题。可是谁来召唤应急预案呢&#xff1f;使用全局热键应该是个不…

eclipse 变成中文

官方下载 http://www.eclipse.org/babel/downloads.php 按照自己的eclipse版本下载对应的 复制链接 到eclipse ->help->Install New Software 勾选自己的语言包 如&#xff1a; 等待 安装完成 &#xff0c;无过不好用 更改 右键 属性 更改位置 加后缀 D:\xinle_eclips…

框架模式与设计模式之区别

http://my.oschina.net/u/991183/blog/109854 有很多程序员往往把框架模式和设计模式混淆&#xff0c;认为MVC是一种设计模式。实际上它们完全是不同的概念。框架、设计模式这两个概念总容易被混淆&#xff0c;其实它们之间还是有区别的。框架通常是代码重用&#xff0c;而设计…

村上春树 开始写作_如何克服对写作的恐惧并找到开始的动力

村上春树 开始写作Writing about our work is one of those things that most of us have on our to-do list. But whether its due to procrastination or fear, we never actually get to it. Heres some more motivation and reasons why you should give it a shot!撰写我们…

一个基于组件的动态对象系统

http://hulefei29.iteye.com/blog/1490889 一、静态的痛苦 作为一个项目经验丰富的程序员&#xff0c;你经常会遇到游戏开发过程中的“反复”(iterations)&#xff1a;今天美术将一个静态的模型改为骨骼模型并添加了动画&#xff1b;明天企划会议上决定把所有未拾取武器由…

Lua生成Guid(uuid)

全局唯一标识符&#xff08;GUID&#xff0c;Globally Unique Identifier&#xff09;也称作 UUID(Universally Unique IDentifier) 。GUID是一种由算法生成的二进制长度为128位的数字标识符。GUID主要用于在拥有多个节点、多台计算机的网络或系统中。在理想情况下&#xff0c;…

c:if标签的使用

1、标签的基本介绍 <c:if> 标签必须要有test属性&#xff0c;当test中的表达式结果为true时&#xff0c;则会执行本体内容&#xff1b;如果为false&#xff0c;则不会执行。例如&#xff1a;${requestScope.username admin}&#xff0c;如果requestScope.username等adm…

ecs和eks 比较_如何使用Kubernetes,EKS和NGINX为网站设置DNS

ecs和eks 比较As the creator of Foo, a platform for website quality monitoring, I recently endeavored in a migration to Kubernetes and EKS (an AWS service).作为网站质量监控平台Foo的创建者&#xff0c;我最近努力迁移到Kubernetes和EKS(一种AWS服务)。 Kubernetes…

仅需6步,教你轻易撕掉app开发框架的神秘面纱(1):确定框架方案

遇到的问题 做游戏的时候用的是cocos2dxlua&#xff0c;游戏开发自有它的一套框架机制。而现在公司主要项目要做android和iOS应用。本文主要介绍如何搭建简单易用的App框架。 如何解决 对于新手来说&#xff0c;接触一门新的知识&#xff0c;往往会思考该怎么入手&#xff0c;…

js全局变量污染

一.定义全局变量命名空间 只创建一个全局变量&#xff0c;并定义该变量为当前应用容器&#xff0c;把其他全局变量追加在该命名空间下 var my{}; my.name{big_name:"zhangsan",small_name:"lisi" }; my.work{school_work:"study",family_work:&q…

cached-query 将缓存和查询数据库高速连接起来的轻类库

介绍 我们经常有这种需求&#xff1a;当我们把memcached增加到项目后我还还要写一个 cacheUtils 或者 cacheManager 之类的类来操作memcached。而且一般的操作不外乎是这种操作&#xff1a; 拿到一段sql&#xff0c;先去memcahed里面看下是否有缓存&#xff0c;假设有就直接返回…

全栈Python Flask教程-建立社交网络

Learn how to build a basic social platform with the Python Flask web framework. 了解如何使用Python Flask网络框架构建基本的社交平台。 In this video, we show you how to:在此视频中&#xff0c;我们向您展示如何&#xff1a; how to create a database, 如何创建数…

py执行系统命令

py执行系统命令 1. os.system In [32]: run os.system("date") Thu Jan 28 09:41:25 CST 2016 In [33]: run Out[33]: 0 只能得到返回值&#xff0c;无法得到输出。 2. os.popen In [35]: run os.popen("date") In [36]: run.read Out[36]: <function…

仅需6步,教你轻易撕掉app开发框架的神秘面纱(2):MVP比MVC更好吗

对于程序框架的选择&#xff0c;由于android天然的MVC&#xff0c;本来不需要另外设计直接使用即可。但是我更加钟情于MVP模式&#xff0c;对于其将ui完全与业务逻辑分离的思路很赞同。 那么什么是业务逻辑&#xff1f;个人认为&#xff0c;对数据&#xff08;即MVC中的M&…

一、nginx 安装

添加官方 yum 源 1 vim /etc/yum.repos.d/nginx.rep 输入以下内容&#xff08;OS为你的系统&#xff0c;OSRELEASE 系统版本&#xff09; 1 [nginx] 2 namenginx repo 3 baseurlhttp://nginx.org/packages/mainline/OS/OSRELEASE/$basearch/ 4 gpgcheck0 5 enabled1 列出可安装…