JavaScript 正则表达式,用于规定在文本中检索的内容。

一、定义正则表达式:

rep = /\d+/;        // js定义正则。(python定义正则:re模块 rep = "\d+")
// 注:定义正则表达式也可以 reg= new RegExp()

  

  • /…/ 用于定义正则表达式
  • /…/g 表示全局匹配
  • /…/i 表示不区分大小写
  • /…/m 表示多行匹配

JS正则匹配时本身就是支持多行,此处多行匹配只是影响正则表达式^和$,m模式也会使用^$来匹配换行的内容。

> var text = "JavaScript is more fun than \nJavaEE or JavaBeans!";
"JavaScript is more fun than \
JavaEE or JavaBeans!"
> var pattern1 = /Java\w*/g; // 无^、$,默认就是多行
> var pattern2 = /^Java\w*/g; // 有^、$,只匹配一行
> var pattern = /^Java\w*/gm; // 有^、$,多行匹配
> result = pattern.exec(text)
["JavaScript"]
> result = pattern.exec(text)
["JavaEE"]

  

二、正则对象的方法

有 3 个方法:test()、exec() 以及 compile()。

1、test()

test() 方法检索字符串中的指定值。返回值是 true 或 false。

> rep = /\d+/;
> rep.test("name89age") // 默认:只要内部包含就返回true
true
> rep = /^\d+$/; // ^开始符号,$结束符号
> rep.test("name89fgf")
false

  

2、exec()

exec() 方法检索字符串中的指定值。返回值是被找到的值。如果没有发现匹配,则返回 null。

  • 非全局模式
> var text = "JavaScript is more fun than Java or JavaBeans!";
> var pattern = /\bJava\w*\b/; // 默认只拿第一个
> result = pattern.exec(text)
["JavaScript"]
> var pattern = /\b(Java)\w*\b/; // () 分组匹配
> result = pattern.exec(text)
["JavaScript", "Java"]
// 注意:第一个元素是第一个匹配的结果,后面元素是正则子匹配(正则内容分组匹配)

  

  • 全局模式

需要反复调用exec方法,来一个一个获取结果,直到匹配获取结果为null表示获取完毕

var pattern = /\bJava\w*\b/g;   // 加g,反复执行exec,一个一个匹配结果
var text = "JavaScript is more fun than Java or JavaBeans!";
result = pattern.exec(text) //每执行一次仅返回一个结果,不断next,直至null var pattern = /\b(Java)\w*\b/g; // 分组匹配(匹配结果再匹配)
var text = "JavaScript is more fun than Java or JavaBeans!";
result = pattern.exec(text)

  

3、compile()

compile() 方法用于改变 正则表达式对象。

compile() 既可以改变检索模式,也可以添加或删除第二个参数。

例子:

patt1 = new RegExp("e");
patt1.test("The best things in life are free");
patt1.compile("d");
patt1.test("The best things in life are free");

  

由于字符串中存在 “e”,而没有 “d”,以上代码的输出是:

true
false

  

三、表单验证-示例

1、知识点回顾

  • Dom和jQuery方式绑定事件,获取函数返回值
<body>
<!--Dom方式:onclick里需要加return-->
<a onclick="return ClickOn()" href="http://blog.csdn.net/fgf00">走你1</a>
<!--jQuery方式:-->
<a id="i1" href="http://blog.csdn.net/fgf00">走你2</a>
<script src="jquery-1.12.4.js"></script>
<script>
// Dom方式:
function ClickOn() {
alert(123);
return true; // true:执行后面操作,dom绑定里需要加return
}
// jQuery方式:
$('#i1').click(function () {
alert(456);
return false; // false:不执行后面操作
})
</script>
</body>

  

  • 事件优先级

比如a标签等一些标签,默认就有绑定事件,再给添加一个自定义事件,哪个先执行?

# 默认事件先执行:
checkbox(复选框)
# 自定义事件先执行
a
submit
...

  

2、表单验证

为了防止用户点一次,就往数据库发送一次连接请求,对于一些简单的比如文本格式、长度等,在浏览器上给拦截了,是不是就可以了。

对一部分检测的功能,放到前端上面做,用js实现。但是要知道,浏览器上的js是可以被禁用的。

一般情况下,对于用户的验证,前端写一套基本验证、后端也写一套完全验证,针对所有用户。

一般情况下,对于用户的验证,前端写一套基本验证、后端也写一套完全验证,针对所有用户。

表单认证代码示例地址

JavaScript正则表达式及jQuery回顾的更多相关文章

  1. 正则表达式入门教程&&经典Javascript正则表达式(share)

    前言 例子: ^.+@.+\\..+$ 这样的代码曾经多次把我自己给吓退过.可能很多人也是被这样的代码给吓跑的吧.继续阅读本文将让你也可以自由应用这样的代码. 正文 教程:正则表达式30分钟入门教程 ...

  2. JavaScript正则表达式学习笔记(二) - 打怪升级

    本文接上篇,基础部分相对薄弱的同学请移步<JavaScript正则表达式学习笔记(一) - 理论基础>.上文介绍了8种JavaScript正则表达式的属性,本文还会追加介绍几种JavaSc ...

  3. 正则表达式入门教程&&经典Javascript正则表达式----share

    前言 例子: ^.+@.+\\..+$ 这样的代码曾经多次把我自己给吓退过.可能很多人也是被这样的代码给吓跑的吧.继续阅读本文将让你也可以自由应用这样的代码. 正文 教程:正则表达式30分钟入门教程 ...

  4. 《JavaScript 正则表达式迷你书》知识点小抄本

    介绍 这周开始学习老姚大佬的<JavaScript 正则表达式迷你书> , 然后习惯性的看完一遍后,整理一下知识点,便于以后自己重新复习. 我个人觉得:自己整理下来的资料,对于知识重现,效 ...

  5. 正则表达式入门教程&&经典Javascript正则表达式

    前言 例子: ^.+@.+\\..+$ 这样的代码曾经多次把我自己给吓退过.可能很多人也是被这样的代码给吓跑的吧.继续阅读本文将让你也可以自由应用这样的代码. 正文 教程:正则表达式30分钟入门教程 ...

  6. javascript正则表达式和字符串RegExp

    这篇文章主要介绍了javascript正则表达式和字符串RegExp and String(一)的相关资料,需要的朋友可以参考下     前言     正则表达式是javascript非常重要和常用的 ...

  7. JavaScript正则表达式,你真的知道?

    一.前言 粗浅的编写正则表达式,是造成性能瓶颈的主要原因.如下: var reg1 = /(A+A+)+B/; var reg2 = /AA+B/; 上述两个正则表达式,匹配效果是一样的,但是,效率就 ...

  8. 【JS】javascript 正则表达式 大全 总结

    javascript 正则表达式 大全 总结 参考整理了一些javascript正则表达式 目的一:自我复习归纳总结 目的二:共享方便大家搜索 微信:wixf150 验证数字:^[0-9]*$ 验证n ...

  9. 理清JavaScript正则表达式--上篇

    在JavaScript中,正则表达式由RegExp对象表示.RegExp对象呢,又可以通过直接量和构造函数RegExp两种方式创建,分别如下: //直接量 var re = /pattern/[g | ...

随机推荐

  1. log4j.properties文件无法解析

    普通工程:log4j.properties文件必须放在src根目录下

  2. PTA | 1056 组合数的和 (15分)

    给定 N 个非 0 的个位数字,用其中任意 2 个数字都可以组合成 1 个 2 位的数字.要求所有可能组合出来的 2 位数字的和.例如给定 2.5.8,则可以组合出:25.28.52.58.82.85 ...

  3. Hadoop安装教程_分布式

    Hadoop的分布式安装 hadoop安装伪分布式以后就可以进行启动和停止操作了. 首先需要格式化HDFS分布式文件系统.hadoop namenode -format 然后就可以启动了.start- ...

  4. js中相关的windows方法的使用和location的先关方法的使用

    下面是关于windows的相关方法的简单介绍. setInterval():它有一个返回值,主要是提供给clearInterval使用. setTimeout():它有一个返回值,主要是提供给clea ...

  5. vue-shop项目第二天(用于个人学习的记录)

    vue-shop项目第二天 1.实现路由导航守卫功能. router.beforeEach((to, from, next) => { // to 将要访问的路径 from 代表从哪个路径跳转而 ...

  6. wireshark抓包实战(五),首选项设置和基本的抓包设置

    一.首选项 首选项一般是修改软件底层的一些默认参数 选中编辑,点击首选项按钮 二.抓包选项设置 点击捕获,选中选项 1.捕获网卡设置 2.保存文件方式设置 很多情况下wireshark会保存很大的数据 ...

  7. Kubernetes 二进制部署

    目录 1.基础环境 2.部署DNS 3.准备自签证书 4.部署Docker环境 5.私有仓库Harbor部署 6.部署Master节点 6.1.部署Etcd集群 6.2.部署kube-apiserve ...

  8. 使用rem配置PC端自适应大屏

    效果如下 使得大屏不论在什么宽高比例依然能展示全部数据 安装 npm install -S postcss-pxtorem rem配置思路 原先的rem函数是能解决大部分的问题的,如果展示不全,也可以 ...

  9. 聊一聊深拷贝和浅拷贝(JS)

    在 JS 中数据类型分为值类型和引用类型,对于值类型,变量中存放的是具体的值,而对于引用类型,变量中存放的是地址. 对于值类型: const a = 3; let b = a; b = 4; cons ...

  10. Byte字节

    字节(Byte )是计算机信息技术用于计量存储容量的一种计量单位,作为一个单位来处理的一个二进制数字串,是构成信息的一个小单位.最常用的字节是八位的字节,即它包含八位的二进制数. 中文名 字节 外文名 ...