正则表达式(简单易懂篇)

什么是正则表达式:

简单的说,正则表达式是一种可以用于模式匹配和替换的强大工具。在几乎所有的基于UNIX/LINUX系统的软件工具中找到正则表达式的痕迹,例如:Perl或PHP脚本语言。此外,JavaScript这种客户端的脚本语言也提供了对正则表达式的支持,现在正则表达式已经成为了一个通用的概念和工具,被各类技术人员所广泛使用。

正则表达式基本语法

一、创建JavaScript正则(RegExp)对象

var reg = RegExp('s'); var reg = /s/; // 简写方式 推荐使用 不能为空 不然会以为是注释

二、预定义符

开始前先看一些符号表达的意思才好帮助你对下面的例子可以迅速的理解

\s : 空格
\S : 非空格
\d : 数字
\D : 非数字
\w : 字符
\W : 非字符
\i : 不区分大小写
\g : 全局匹配(一般正则找到第一个符合条件的就会停止,在后面加上这个符合就会告诉正则继续往下不要停)
| : 或
. : 任意字符
\b : 独立的部分 ( 起始,结束,空格 )
\B : 非独立的部分
\n : 重复的某个子项,例如

var reg = /(a)(b)(c)\1/; //=> abca 重复了a子项

如需使用真正的符号例如“.”,只需添加\即可,如\.

三、常用的几个方法

1. test() => 在字符串中查找符合正则指定的内容,若找到返回true,否则返回false

// 用法:正则.test(字符串) var data = '123456789987654321'; var reg = /\d/; // \d这里代表数字 if( reg.test(str) ){ console.log('内容为数字'); console.log(reg.test(str)) // 返回 true }

2. match() => 在字符串中查询符合正则指定的内容,成功则返回内容(数组格式),否则返回null

// 用法:字符串.match(正则) var data = '123456mple789Mple875654'; var reg = /mple/gi; console.log(data.match(reg)); // mple,Mple

3. search() => 在字符串中查询符合正则指定的内容,成功找到则返回当前内容的位置从0开始(如不止一个内容符合正则条件,则返回第一个找到的位置),如果没找到则返回-1

// 用法:字符串.search(正则) var data = '1234mple56789Mple987mple654321'; var reg = /mple/gi; console.log(data.search(reg)); // 4

4. replace() => 在字符串中查询符合正则指定的内容,查找到则替换对应内容并返回替换后的内容

// 用法:字符串.replace(正则,新的字符串/回调函数) var data = '啦啦啦~一大堆啦啦啦'; var reg = /啦/g; var rep = data.replace(reg,function(data){ var ne = ''; for(var i=0; i<data.length; i++){ ne += '*'; } return ne; }); console.log(rep);

5. exec() => 查找并返回当前的匹配结果,以数组的形式返回

//用法:正则.exec(字符串) var data = "1234mple5678mple99876mple543Mple21"; var reg = /mple/ig; var s = reg.exec(data) console.log(s.index); //4

6. split() = 正则分割字符串

7. sort():数组中的排序方法,按照ACALL码进行排序

8. join():数组中的方法,把数组转换为字符串

var data = '4445554654123156489151321456'; var arr = data.split(''); data = arr.sort().join(''); console.log(data);

四、常用量词

{n,m} : 至少出现n次,最多m次

{n,} : 至少n次

* : 任意次 相当于{0,}

? :零次或一次 相当于{0,1}

+ : 查找的结果至少出现一次或任意次 {1,}

{n} : 正好n次

最后来个例子理解理解,判断QQ号

HTML

<input class="qq" type="text" placeholder="请输入QQ号"> <button type="button" class="sub">检测</button>

正则

//先来看看我们日常登录的QQ号有哪些性质 1 首位肯定不是为0 2 必须是5-10位的数字 var oInput = document.querySelector('.qq'); var oSub = document.querySelector('.sub'); var reg = /^[1-9]\d{4,9}$/; //为了防止最后几位数出现字母abc之类的情况,所以需要添加$进行尾数限制 //所以最后的逻辑是这样的,首位是0-9,接着是4-9位的数字类型。 oSub.onclick = function(){ if( reg.test(oInput.value) ){ alert('检测成功'); }else{ alert('账户不存在'); } };

以上所述是小编给大家介绍的正则表达式(简单易懂篇),希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

时间: 2024-10-24 06:11:12

正则表达式(简单易懂篇)的相关文章

让你一句话理解闭包(简单易懂)_javascript技巧

接触javascript很久了,每次理解闭包都似是而非,最近在找Web前端的工作,所以需要把基础夯实一下. 本文是参照了joy_lee的博客 闭包 在她这篇博客的基础上以批注的形式力争把我的理解阐述出来,如果有不当之处,欢迎批评指正. <高级程序设计>上,这样说:当在函数内部定义了其他函数时候,就创建了闭包.闭包有权访问包含函数内部的所有变量. (这句话怎么理解呢?照这句话理解的话,闭包就是一个嵌套函数嘛!嵌套函数对包含它的函数的变量当然可以访问,这是没有问题的.) 一般来说,内部函数是能够访

以麦当劳,肯德基优惠券接口数据为例进行的数据解析方法,简单易懂

以麦当劳,肯德基优惠券接口数据为例进行的数据解析方法,简单易懂,这是我个人觉得是一种比较简单易懂的json数据解析方法: 看下其中一个类的代码 package com.example.text_json_deno_model; import java.util.ArrayList; import java.util.List; import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject;

java正则表达式简单问题。

问题描述 java正则表达式简单问题. 例如 字符串: 心心相印的人,在悲哀之中必然会发出同情的共鸣.--莎士比亚 怎么获取从 悲哀之中 开始 到最后结束的的字符串.用正则解决.谢谢各位帮我解答下.用java的其他方法可以吗? 采纳 谢谢给位的解答.我想知道用正则怎么解决. 我想解决的是这样一个问题 我知道到我想要要获得的字符串的开头的字符 , 但是开头的字符在字符串的位置每次都是不确定的.而且每次中间的字符也是不同的 列如 小明昨天看见了小红巴拉巴拉...和 太奇妙了小王昨天看见了小红..巴拉

asp.net页面的生命周期是怎么样的,简单易懂点的,谢谢啊

问题描述 asp.net页面的生命周期是怎么样的,简单易懂点的,谢谢啊 解决方案 解决方案二:msdn上有详细描述:ASP.NET页生命周期概述http://msdn.microsoft.com/zh-cn/library/ms178472(VS.80).aspx

java正则表达式简单应用_java

一:抓取网页中的Email地址 利用正则表达式匹配网页中的文本 [\\w[.-]]+@[\\w[.-]]+\\.[\\w]+ 将网页内容分割提取 import java.io.BufferedReader; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.IOException; import java.util.regex.Matcher; import java.util.rege

JavaScript 2048 游戏实例代码(简单易懂)_javascript技巧

废话不多说了,直接给大家贴代码了,觉得很满意直接拿去. <!DOCTYPE html PUBLIC "-//WC//DTD XHTML . Transitional//EN" "http://www.w.org/TR/xhtml/DTD/xhtml-transitional.dtd"> <html xmlns="http://www.w.org//xhtml"> <head> <meta http-equ

Java正则表达式入门基础篇(新手必看)_正则表达式

正则表达式是一种可以用于模式匹配和替换的规范,一个正则表达式就是由普通的字符(例如字符a到z)以及特殊字符(元字符)组成的文字模式,它 用以描述在查找文字主体时待匹配的一个或多个字符串.正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配. 众所周知,在程序开发中,难免会遇到需要匹配.查找.替换.判断字符串的情况发生,而这些情况有时又比较复杂,如果用纯编码方式解决,往往会浪费程序员的时间及精力.因此,学习及使用正则表达式,便成了解决这一矛盾的主要手段. 大家都知道,正则表达式是一种可以

Java正则表达式入门基础篇(新手必看)

正则表达式是一种可以用于模式匹配和替换的规范,一个正则表达式就是由普通的字符(例如字符a到z)以及特殊字符(元字符)组成的文字模式,它 用以描述在查找文字主体时待匹配的一个或多个字符串.正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配. 众所周知,在程序开发中,难免会遇到需要匹配.查找.替换.判断字符串的情况发生,而这些情况有时又比较复杂,如果用纯编码方式解决,往往会浪费程序员的时间及精力.因此,学习及使用正则表达式,便成了解决这一矛盾的主要手段. 大家都知道,正则表达式是一种可以

关于正则表达式第四篇

正则表达式,林林总总说了几篇,还是有不少的内容需要补充. -->星号 字符出现0次或者多次 $ echo "ik"|sed -n '/e*/p' ik $ echo "ieek"|sed -n '/e*/p' ieek $ echo "This is a color TV"|sed -n '/colou*r/p'  --colour中的u可以出现0次或者多次.出现0次的时候color就符合条件 This is a color TV $ ec