精华内容
下载资源
问答
  • 主要介绍了JS正则表达式获取字符串中得特定字符,通过replace的回调函数获取,需要的朋友可以参考下
  • 主要介绍了javascript使用正则表达式实现去掉空格之后的字符的方法,需要的朋友可以参考下
  • 正则表达式(regular expression)是一个描述字符模式的对象。下面通过本篇文章给大家介绍js正则表达式验证身份证号码是否合法,需要的朋友可以参考下本
  • 主要介绍了使用C++封装常用正则表达式用法,方便以后直接使用,最后还给出了测试代码,大家可运行测试使用
  • 一、JavaScript正则表达式正则表达式(英语:Regular Expression,在代码中常简写为regex、regexp或RE)使用单个字符串来描述、匹配一系列符合某个句法规则的字符串搜索模式。搜索模式可用于文本搜索和文本替换。什么...

    一、JavaScript正则表达式

    正则表达式(英语:Regular Expression,在代码中常简写为regex、regexp或RE)使用单个字符串来描述、匹配一系列符合某个句法规则的字符串搜索模式。

    搜索模式可用于文本搜索和文本替换。

    什么是正则表达式?

    正则表达式是由一个字符序列形成的搜索模式。

    当你在文本中搜索数据时,你可以用搜索模式来描述你要查询的内容。

    正则表达式可以是一个简单的字符,或一个更复杂的模式。

    正则表达式可用于所有文本搜索和文本替换的操作。

    语法

    /正则表达式主体/修饰符(可选)

    其中修饰符是可选的。

    实例:

    var patt = /runoob/i

    实例解析:

    /runoob/i  是一个正则表达式。

    runoob  是一个正则表达式主体(用于检索)。

    i  是一个修饰符(搜索不区分大小写)。

    使用字符串方法

    在 JavaScript 中,正则表达式通常用于两个字符串方法 : search() 和 replace()。

    search() 方法用于检索字符串中指定的子字符串,或检索与正则表达式相匹配的子字符串,并返回子串的起始位置。

    replace() 方法用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串。

    search() 方法使用正则表达式

    实例:使用正则表达式搜索 "Runoob" 字符串,且不区分大小写:

    var str = "Visit Runoob!";

    var n = str.search(/Runoob/i);

    console.log(n );//输出结果为:6

    search() 方法使用字符串

    search 方法可使用字符串作为参数。字符串参数会转换为正则表达式:

    实例:检索字符串中 "Runoob" 的子串:

    var str = "Visit Runoob!";

    var n = str.search("Runoob");

    console.log(n );//输出结果为:6

    replace() 方法使用正则表达式

    实例:使用正则表达式且不区分大小写将字符串中的 Microsoft 替换为 Runoob :

    var str = 'Visit Microsoft!';

    var txt = str.replace(/microsoft/i,"Runoob");

    console.log(txt);//结果输出为:Visit Runoob!

    你注意到了吗?

    正则表达式参数可用在以上方法中 (替代字符串参数)。正则表达式使得搜索功能更加强大(如实例中不区分大小写)。

    replace() 方法使用字符串

    实例:replace() 方法将接收字符串作为参数:

    var str = 'Visit Microsoft!';

    var txt = str.replace("Microsoft","Runoob");

    console.log(txt);//结果输出为:Visit Runoob!

    正则表达式修饰符

    修饰符可以在全局搜索中不区分大小写:

    修饰符

    描述

    i

    执行对大小写不敏感的匹配。

    g

    执行全局匹配(查找所有匹配而非在找到第一个匹配后停止)。

    m

    执行多行匹配。

    正则表达式模式

    方括号用于查找某个范围内的字符:

    表达式

    描述

    [abc]

    查找方括号之间的任何字符。

    [0-9]

    查找任何从 0 至 9 的数字。

    (x|y)

    查找任何以

    元字符是拥有特殊含义的字符:

    元字符

    描述

    d

    查找数字。

    s

    查找空白字符。

    b

    匹配单词边界。

    uxxxx

    查找以十六进制数 xxxx 规定的 Unicode 字符。

    量词:

    量词

    描述

    n+

    匹配任何包含至少一个n的字符串。

    n*

    匹配任何包含零个或多个n的字符串。

    n?

    匹配任何包含零个或一个n的字符串。

    使用 RegExp 对象

    在 JavaScript 中,RegExp 对象是一个预定义了属性和方法的正则表达式对象。

    使用 test()

    test() 方法是一个正则表达式方法。

    test() 方法用于检测一个字符串是否匹配某个模式,如果字符串中含有匹配的文本,则返回 true,否则返回 false。

    以下实例用于搜索字符串中的字符 "e":

    实例:

    var patt = /e/;

    var res = patt.test("The best things in life are free!");

    console.log(res );//字符串中含有 "e",所以该实例输出为:true

    你可以不用设置正则表达式的变量,以上两行代码可以合并为一行:

    /e/.test("The best things in life are free!")

    使用 exec()

    exec() 方法是一个正则表达式方法。

    exec() 方法用于检索字符串中的正则表达式的匹配。

    该函数返回一个数组,其中存放匹配的结果。如果未找到匹配,则返回值为 null。

    以下实例用于搜索字符串中的字母 "e":

    实例:

    var res = /e/.exec("The best things in life are free!");

    console.log(res? res[0] : res);//字符串中含有 "e",所以该实例输出为:e

    正则表达式表单验证实例:

    /*是否带有小数*/

    function isDecimal(strValue ) {

    var objRegExp= /^d+.d+$/;

    return objRegExp.test(strValue);

    }

    /*校验是否中文名称组成 */

    function ischina(str) {

    var reg=/^[u4E00-u9FA5]{2,4}$/; /*定义验证表达式*/

    return reg.test(str); /*进行验证*/

    }

    /*校验是否全由8位数字组成 */

    function isStudentNo(str) {

    var reg=/^[0-9]{8}$/; /*定义验证表达式*/

    return reg.test(str); /*进行验证*/

    }

    /*校验电话码格式 */

    function isTelCode(str) {

    var reg= /^((0d{2,3}-d{7,8})|(1[3584]d{9}))$/;

    return reg.test(str);

    }

    /*校验邮件地址是否合法 */

    function IsEmail(str) {

    var reg=/^w+@[a-zA-Z0-9]{2,10}(?:.[a-z]{2,4}){1,3}$/;

    return reg.test(str);

    }

    二、JavaScriptRegExp对象

    RegExp 对象

    正则表达式是描述字符模式的对象。

    正则表达式用于对字符串模式匹配及检索替换,是对字符串执行模式匹配的强大工具。

    语法

    var patt=new RegExp(pattern,modifiers);

    或者更简单的方式:

    var patt=/pattern/modifiers;

    pattern(模式) 描述了表达式的模式

    modifiers(修饰符) 用于指定全局匹配、区分大小写的匹配和多行匹配

    注意: 当使用构造函数创造正则对象时,需要常规的字符转义规则(在前面加反斜杠 )。比如,以下是等价的:

    var re = new RegExp("\w+");

    var re = /w+/;

    修饰符

    修饰符用于执行区分大小写和全局匹配:

    修饰符

    描述

    执行对大小写不敏感的匹配。

    执行全局匹配(查找所有匹配而非在找到第一个匹配后停止)。

    m

    执行多行匹配。

    方括号

    方括号用于查找某个范围内的字符:

    表达式

    描述

    查找方括号之间的任何字符。

    查找任何不在方括号之间的字符。

    [0-9]

    查找任何从 0 至 9 的数字。

    [a-z]

    查找任何从小写 a 到小写 z 的字符。

    [A-Z]

    查找任何从大写 A 到大写 Z 的字符。

    [A-z]

    查找任何从大写 A 到小写 z 的字符。

    [adgk]

    查找给定集合内的任何字符。

    [^adgk]

    查找给定集合外的任何字符。

    (red|blue|green)

    查找任何指定的选项。

    元字符

    元字符(Metacharacter)是拥有特殊含义的字符:

    元字符

    描述

    查找单个字符,除了换行和行结束符。

    查找单词字符。

    查找非单词字符。

    查找数字。

    查找非数字字符。

    查找空白字符。

    查找非空白字符。

    匹配单词边界。

    匹配非单词边界。

    展开全文
  • 腾讯云活动聚集了最新的...因为对js中的正则不太了解,可以参考一下js 中正则表达式必知必会1. 字符串操作消除字符串两边的括号 trimstring.prototype.trim = function(){ return this.replace((^s+)|(s+$)g, )}h...

    fff0d68b9efd2ee8684033b2d7e2877d.png

    1ifzakkah5.jpg

    腾讯云活动聚集了最新的降价打折、特惠折扣等资料,你在这里可以寻找云服务器、域名、、小流程等等多种不同产品的促销活动,还有这些品牌的免费试用哦。

    因为对js中的正则不太了解,可以参考一下js 中正则表达式必知必会1. 字符串操作消除字符串两边的括号 trimstring.prototype.trim = function(){ return this.replace((^s+)|(s+$)g, )}html编码,对< > & 等符号转义,防止xss攻击function htmlencode(str) { return str.replace(g, function(rs){ switch (rs) { case ...

    var obj = document.getelementbyid(name); if(!reg.test(obj.value)){ alert(请输入数字!); } if(!^*$.test(obj.value)){ alert(请输入数字!); } } javascript正则表达式集 : 验证数字:^*$ 验证n位的数字:^d{n}$ 验证至少n位数字:^d{n,}$ 验证m-n位的数字:^d{m,n}$ 验证零和非零开头的数字:^(|*)$ 验证有两位...

    217jy2iu0q.png

    c0988b06f091b99128cd93481ff1a639.gif

    转自: js正则表达式讲解,从方法和英语到js正则、es6正则扩展,最终再到正则实践策略温馨提示:标题很长很长,维持耐心,必要时可以跳着看,其实用于查应该不错的。 正则啊,好像一座航标,当你在字符串的大海不知所措的时候,总能给你一点思路; 正则啊,好像一台验钞机,在你不知道用户填写的票子真假的时候...

    url 六,js的正则表达式rge.test(str) 检验目标对象中是否包括匹配模式,并相应的返回true或false rge.sourcestr.search(rge) 将离开一个整数值...^w+((-w+)|(.w+))*@w+((.|-)w+)*.w+$ 三,匹配英文符号的正则表达式: 评注:匹配英文还真是个头痛的事,有了这个解释器就好办了 匹配双字符字符(包含汉字...

    ejszsnba3i.png

    1.正则表达式概述正则表达式, 又称正规表示式、正规表示法、正规表达式、规则表达式、常规认为法(语文:regularexpression,在源码中常简写为regex、regexp或re),是计算机科学的一个概念。 正则表达式使用单个字符串来描述、匹配一系列匹配某个句子规则的字符串。 在众多文本编辑器里,正则表达式通常被用于检索...

    本文不讨论正则表达式入门,即怎么使用正则匹配。 讨论的是两种创建正则表达式的好坏和一些细节,最终给出一些常见正则匹配表达式。 javascript中的正则表达式作为对象,我们可以使用两种方式创建正则表达式:使用new regexp()构造函数使用正则表达字面量 先说结果,使用正则表达字面量的效能更高。 下面的实例源码...

    09bac8c0981888b1cff978eb19d1aaa4.jpg

    wdyuzyrjtc.png

    我们发现,正则匹配并没有得到正确的匹配结果。? 图(3)有一种方式是把正则表达式,换成汉字对应的unicode编码。 但是js正则表达式 非中文,在fme2016中,对以下的市、区换成...本文作者从另一个角度写了怎么在fme中使用正则,就如之前所说fme是一个开放的平台,可以容纳很多,还是你是讨厌使用py还是js,都可以以自己善于的方法扩大...

    恰好有一栏的数据全部是英文汉字,所以仅仅对于汉字函数使用默认的sort排序,所以是针对汉字的unicode值进行比较排序js正则表达式 非中文,结果肯定与我们习惯的按照汉字的读音排序大不相似。 但是对于一个简单易用的流程而言,没有必要写个繁杂的硬件来将汉字转化为生字,然后在进行ascii码值比较,代价有些大,还好,js中有一个函数...

    仅仅可以匹配是否含有非ascll字符 而汉字只是其中一个比较小的区域 不太精确由于我的界面编码是utf-8的 于是把js的解释器搬到php中来 提示pcre不支持”u”和其它乱七八糟的一大堆东西 后来查信息了解到 php的正则有一种叫做字节组的东西用x{... 表示 于是把解释器改成”^+$” 又提示”x”表达式后的数字太大 又查了...

    } } }2 正则表达式去括号str.replace(^(s|u00a0)+|(s|u00a0)+$g,); 3 利用正则过滤中文str.replace(g,); 4 禁止用户的拷贝和复制xxx.oncopy =function(){ return false;}xxx.onpaste = function(){ return false;}5限制字符串长度(划分中英文) 主要精神: 需要3个数据:1 限制输入的宽度; 2 已经输入了多长...

    32e3ff4384d3a908061f6ea214a4b6cc.png

    pynlpir提供了nlpirictclas汉语词性的python接口,而且zhon提供了常见汉字常量,如cjk符号和韵母,英文标点,读音,和小篆正则表达式(如寻找文本中的简体...可以让你在浏览器中,跑起深度学习作用的超酷开源项目convnetjs作者karpathy告诉你,绝佳技巧是,当你开始写代码,所有将显得清晰。 他刚发布了一本图书...

    pynlpir 提供了 nlpirictclas 汉语词性的 python 接口,而且 zhon 提供了常见汉字常量,如 cjk 字符和韵母,英文标点,读音,和小篆正则表达式(如寻找...跑起深度学习作用的超酷开源项目 convnetjs 作者 karpathy 告诉你,绝佳技巧是,当你开始写代码,所有将显得清晰。 他刚发布了一本图书,不断更新...

    pynlpir提供了nlpirictclas汉语词性的python接口,而且zhon提供了常见汉字常量,如cjk符号和韵母,英文标点,读音,和小篆正则表达式(如寻找文本中的简体...可以让你在浏览器中,跑起深度学习作用的超酷开源项目convnetjs作者karpathy告诉你,绝佳技巧是,当你开始写代码,所有将显得清晰。 他刚发布了一本图书...

    pynlpir提供了nlpirictclas汉语词性的python接口,而且zhon提供了常见汉字常量,如cjk符号和韵母,英文标点,读音,和小篆正则表达式(如寻找文本中的简体...可以让你在浏览器中,跑起深度学习作用的超酷开源项目convnetjs作者karpathy告诉你,绝佳技巧是,当你开始写代码,所有将显得清晰。 他刚发布了一本图书...

    pynlpir提供了nlpirictclas汉语词性的python接口,而且zhon提供了常见汉字常量,如cjk符号和韵母,英文标点,读音,和小篆正则表达式(如寻找文本中的简体...可以让你在浏览器中,跑起深度学习作用的超酷开源项目convnetjs作者karpathy告诉你,绝佳技巧是,当你开始写代码,所有将显得清晰。 他刚发布了一本图书...

    20140307110913497.jpg

    匹配英文符号的正则表达式: 19。 匹配双字符字符(包含汉字在内): 20。 应用:计算字符串的宽度(一个双字符字符宽度计2,ascii字符计1)string.prototype.len=function(){return this.replace(g,aa).length; 21。匹配空行的正则表达式:n*r 22。 匹配html标记的正则表达式:. *| 23。 匹配首尾空格的正则表达式...

    5piiu87jtf.jpg

    一般来讲主要是要寻找包含内容的js源码串,然后通过正则表达式获得相应的内容,而不是解析html标签。 另一种情况是在和用户交互时,javascript可能会动态...交互问题有些网页通常需要和用户进行一些交互,从而才能走到下一步,譬如输入一个验证码,拖拽一个滑块,选几个汉字。 网站之所以如此做,好多时候都是...

    一般来讲主要是要寻找包含内容的js源码串,然后通过正则表达式获得相应的内容,而不是解析html标签。 另一种情况是在和用户交互时,javascript可能会动态...交互问题有些网页通常需要和用户进行一些交互,从而才能走到下一步,譬如输入一个验证码,拖拽一个滑块,选几个汉字。 网站之所以如此做,好多时候都是...

    x3kjvwlsq3.png

    一般来讲主要是要寻找包含内容的js源码串,然后通过正则表达式获得相应的内容,而不是解析html标签。 另一种情况是在和用户交互时,javascript可能会动态...交互问题有些网页通常需要和用户进行一些交互,从而才能走到下一步,譬如输入一个验证码,拖拽一个滑块,选几个汉字。 网站之所以如此做,好多时候都是...

    wmpe8lrwa1.jpg

    网站中存在诸多与文本内容无关的资料,譬如广告,导航栏,html、js源码,注释等等。 文本清洗,就是通过正则匹配去掉那些破坏信息,抽取出洁净的文本内容...指的是将一个汉字序列切分成一个一个单独的词。 分词就是将连续的字序列按照一定的规范重新组合成词序列的过程。 一篇文本中不是所有词都很重要...

    本文来自电脑杂谈,转载请注明本文网址:

    http://www.pc-fly.com/a/jisuanjixue/article-118918-1.html

    展开全文
  • 没啥要描述的,直接上代码吧。其中引用了jquery~ 希望大家自行引用。只贴出验证部分代码,其余代码自行添加。如果属于初学者,请寻找有经验者指点。$(function () {$("input[name='sub']").on("click", function () ...

    没啥要描述的,直接上代码吧。其中引用了jquery~ 希望大家自行引用。

    只贴出验证部分代码,其余代码自行添加。如果属于初学者,请寻找有经验者指点。

    $(function () {

    $("input[name='sub']").on("click", function () {

    if (!isEmail($("input[name='email']").val())) {

    $("span[name='email']").html("邮箱格式错误");

    return false;

    }

    else {

    $("span[name='email']").html("");

    }

    if (checkStrong($("input[name='password']").val()) < 3) {

    $("span[name='password']").html("密码太过简单");

    return false;

    }

    else {

    $("span[name='password']").html("");

    }

    if (!isQQ($.trim($("input[name='qq']").val()))) {

    $("span[name='qq']").html("请输入正确的QQ号码");

    return false;

    }

    else {

    $("span[name='qq']").html("");

    }

    if (!isPhone($.trim($("input[name='mnumber']").val()))) {

    $("span[name='mnumber']").html("请输入正确的手机号码");

    return false;

    }

    else {

    $("span[name='mnumber']").html("");

    }

    return true;

    });

    });

    /**

    * 检查字符串是否为合法QQ号码

    * @param {String} 字符串

    * @return {bool} 是否为合法QQ号码

    */

    function isQQ(aQQ) {

    var bValidate = RegExp(/^[1-9][0-9]{4,9}$/).test(aQQ);

    if (bValidate) {

    return true;

    }

    else

    return false;

    }

    /**

    * 检查字符串是否为合法手机号码

    * @param {String} 字符串

    * @return {bool} 是否为合法手机号码

    */

    function isPhone(aPhone) {

    var bValidate = RegExp(/^(0|86|17951)?(13[0-9]|15[012356789]|18[0-9]|14[57])[0-9]{8}$/).test(aPhone);

    if (bValidate) {

    return true;

    }

    else

    return false;

    }

    /**

    * 检查字符串是否为合法email地址

    * @param {String} 字符串

    * @return {bool} 是否为合法email地址

    */

    function isEmail(aEmail) {

    var bValidate = RegExp(/^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/).test(aEmail);

    if (bValidate) {

    return true;

    }

    else

    return false;

    }

    /**

    * 检查字符串是否是整数

    * @param {String} 字符串

    * @return {bool} 是否是整数

    */

    function isInteger(s) {

    var isInteger = RegExp(/^[0-9]+$/);

    return (isInteger.test(s));

    }

    /*

    判断字符类型

    */

    function CharMode(iN) {

    if (iN >= 48 && iN <= 57) //数字

    return 1;

    if (iN >= 65 && iN <= 90) //大写字母

    return 2;

    if (iN >= 97 && iN <= 122) //小写

    return 4;

    else

    return 8; //特殊字符

    }

    /*

    统计字符类型

    */

    function bitTotal(num) {

    modes = 0;

    for (i = 0; i < 4; i++) {

    if (num & 1) modes++;

    num >>>= 1;

    }

    return modes;

    }

    /*

    返回密码的强度级别

    */

    function checkStrong(sPW) {

    if (sPW.length <= 4)

    return 0; //密码太短

    Modes = 0;

    for (i = 0; i < sPW.length; i++) {

    //测试每一个字符的类别并统计一共有多少种模式.

    Modes |= CharMode(sPW.charCodeAt(i));

    }

    return bitTotal(Modes);

    }

    由最代码官方编辑于2016-3-18 9:50:46

    展开全文
  • 这篇文章中我们将通过具体的例子来演示这些元字符和元符号的使用方法。圆点(.)元字符在正则表达式中,圆点(.)元字符代表任何字符(除了回车换行符之外)。通常使用圆点字符来表示占据一个位置,进而表达圆点两侧符号...

    上面一篇文章中列出了JavaScript中支持的所有元字符和元符号,以及它们所代表的含义。这篇文章中我们将通过具体的例子来演示这些元字符和元符号的使用方法。

    圆点(.)元字符

    在正则表达式中,圆点(.)元字符代表任何字符(除了回车换行符之外)。通常使用圆点字符来表示占据一个位置,进而表达圆点两侧符号之间的距离关系。例如,正则表达式/a..b/的含义是:匹配以字符a开头,后面跟两个任意字符,然后是字符b的子串。正则表达式/../表示匹配任何由两个字符组成的子串。

    下面的例子搜索字符串中是否包含有“java”子串,正则表达式为:/j..a/gi。你可以在文本框中输入字符串来进行测试。

    var myString = $("#textarea-1").val();

    var regex = /j..a/gi;

    if(regex.test(myString)){

    alert("在字符串“"+myString+"”中找到了正则表达式/j..a/gi的匹配。")

    }else{

    alert("没有找到匹配的模式。");

    }

    查找匹配模式

    字符类匹配

    字符类表示一组字符的一个字符,例如。[xyz]表示匹配x,y,z这个3个字母中的任何一个,[北上广]匹配汉字“北”、“上”、“广”中的任何一个,[0-9]匹配0-9的任何一个数字。当字符类以脱字符^开头时,表示匹配不在这组字符中的任何字符。例如:[^0-9]表示匹配不是0-9的任何字符,[^a-zA-z]表示匹配不是字母的任何字符。

    检测字符串中是否包含数字

    下面的例子检测字符串中是否包含有数字。

    var myString = $("#textarea-2").val();

    var regex = /[0-9]/;

    if(regex.test(myString)){

    alert("在字符串“"+myString+"”中找到了数字。")

    }else{

    alert("在字符串中没有找到数字。");

    }

    查找匹配模式

    检测字符串中是否包含非字母的字符

    下面的例子检测字符串中是否包含有非字母的字符。

    var myString = $("#textarea-3").val();

    var regex = /[^a-zA-Z]/;

    if(regex.test(myString)){

    alert("在字符串“"+myString+"”中找到了非字母的字符。")

    }else{

    alert("在字符串中没有找到非字母的字符。");

    }

    查找匹配模式

    检测字符串中是否包指定个数的数字

    下面的例子检测字符串中是否包含有连续4个数字的子串。

    var myString = $("#textarea-4").val();

    var regex = /\d\d\d\d/;

    if(regex.test(myString)){

    alert("在字符串“"+myString+"”中找到了4个连续数字的子串。")

    }else{

    alert("在字符串中没有找到4个连续数字的子串。");

    }

    查找匹配模式

    元符号\s、\S、\w、\W匹配演示

    这个例子中,正则表达式的匹配模式为一个单词字符开始,后面跟一个空白字符,然后又是一个单词字符,接着是一个非单词字符,最后是一个非空白字符。你可以试一试:XY2 Z!?

    var myString = $("#textarea-4").val();

    var regex = /\w\s\w\W\S/;

    if(regex.test(myString)){

    alert("在字符串“"+myString+"”中找到了正则表达式/\w\s\w\W\S/的匹配")

    }else{

    alert("在字符串中没有找到正则表达式的匹配。");

    }

    查找匹配模式

    限定符元字符的使用

    前面的元字符示例中都是只匹配一个字符,如果我们想匹配多个字符时,可以使用表示重复次数的限定元字符。限定符元字符可以指定匹配的次数,也可以指定匹配次数的范围,还可以指定多少次以上的匹配。

    最长匹配原则(贪婪匹配原则)

    默认情况下,JavaScript的正则表达式引擎使用贪婪匹配原则来搜索重复元字符匹配的子串,也就是说,从字符串左边的位置开始,尽可能的向右边匹配,只要满足指定的正则表达式就匹配。例如:

    var str = "ab12345678901234567890cd";

    var regex = /ab[0-9]*/;

    如果使用字符“X”替换上面的正则表达式匹配的子串,得到的结果是:

    var myString = str.replace(/ab[0-9]*/,"X");

    alert(myString); //输出Xcd

    替换后得到的结果是Xcd,而不是X2345678901234567890cd。

    元字符*是一个最长匹配(贪婪匹配)的元字符,它匹配任意多个字符,并且总是尽可能多的匹配字符。在上面的例子中,星号作用在[0-9]上,表示匹配任意个数的数字。在遇到非数字字符之前,元字符*一直匹配,直到遇到字符c为止。所以,上面的正则表达式匹配以ab开头,后面跟任意多个数字的子串,使用字符串对象的replace()方法替换后,将整个匹配的子串替换为X,所以替换后的字符串为Xcd。

    贪婪匹配特性(*元字符)

    var myString = "Hello world!";

    var regex = /[A-Z][a-z]*\s/;

    if(regex.test(myString)){

    alert("在字符串“"+myString+"”中找到了正则表达式/[A-Z][a-z]*\\\s/的匹配");

    var arr = regex.exec(myString);

    $("#output-1").text("匹配的子串为: "+arr[0]);

    }else{

    alert("在字符串中没有找到正则表达式的匹配。");

    }

    这个例子要求匹配字符串中包含以大写字母开头,后面跟任意多个小写字母,然后是一个空白字符的子串。如果找到,则将匹配的子串在页面中输出。

    你可以测试字符串“Hello world!”和字符串“HELLO WORLD”的区别。第一个字符串得到的结果是“Hello”,而第二个字符串得到的结果是“H”,*匹配0个字符。

    贪婪匹配特性(+元字符)

    元字符+匹配一个或多个字符,它与*不同之处在于:*可以匹配0个字符,而+至少要匹配一个字符。

    var myString = "abcccccd";

    var regex = /bc+d/;

    var result= regex.test(myString);

    if(result){

    var arr = regex.exec(myString);

    alert(arr[0]);

    }

    执行上面的代码,得到的结果是:bcccccd。

    贪婪匹配特性({n}元字符)

    元字符{n}表示精确匹配n次某个字符,这里的n是一个具体的数字。

    var myString = "abcccccdbcd";

    var regex = /bc{5}d/;

    var result= regex.test(myString);

    if(result){

    var arr = regex.exec(myString);

    alert(arr[0]);

    }

    执行上面的代码,得到的结果为:bcccccd,而后面的bcd不会被匹配。

    贪婪匹配特性(x{n,m}元字符)

    元字符x{n,}表示至少匹配n次,它比元字符x{n}只多了一个逗号。元字符x{n,m}表示至少匹配n次,但是至多匹配m次。当需要指定匹配次数大于1的时候,使用x{n,},当需要精确匹配的次数时,使用x{n},当需要指定匹配次数在一个范围的时候,使用x{n,m}。

    var myString = "(010)13507738888";

    var regex = /\d{7,11}/;

    var result= regex.test(myString);

    if(result){

    var arr = regex.exec(myString);

    alert(arr[0]);

    }

    上面的代码匹配7-11个连续的数字,得到的结果为:13507738888。

    关闭元字符的贪婪匹配特性

    如果我们需要的匹配结果不是最长匹配,而是首次匹配,该如何操作呢?其实方法非常简单:我们只需要在贪婪匹配修饰符的后面添加一个问号(?)即可。这个问号关闭了元字符的贪婪匹配特性,它表示匹配动作在第一次匹配后结束,而不是在最后一次匹配时结束。

    我们来看下面的例子,第一个例子中使用了贪婪匹配特性,而第二个例子中关闭了贪婪匹配特性,看看它们之间的区别。

    /** 贪婪匹配 **/

    var myString = "abcdefghijklmnopqrstuvwxyz12345";

    var regex = /[a-z]+/;

    myString = myString.replace(regex,"YYYY");

    alert("替换后的字符串为: "+myString);

    正则表达式/[a-z]+/表示匹配一个或多个小写字母,并且是进行贪婪匹配,所以得到的结果为:YYYY12345。

    /** 关闭贪婪匹配 **/

    var myString = "abcdefghijklmnopqrstuvwxyz12345";

    var regex = /[a-z]+?/;

    myString = myString.replace(regex,"YYYY");

    alert("替换后的字符串为: "+myString);

    这一次,我们使用的正则表达式是/[a-z]+?/,它表示匹配一个或多个小写字母,但不进行贪婪匹配,在找到第一个小写字母之后,就停止了进一步的匹配。所以得到的结果为:YYYYbcdefghijklmnopqrstuvwxyz12345

    定位元字符的使用

    在实际应用中,除了需要在字符串的任意位置找到匹配的子串外,很多时候还需要在指定的位置查找是否存在匹配的子串。例如,我们可能需要查找在行首是否出现某个单词,在行尾是否出现了某个子串等等。

    JavaScript中提供了一组元字符来完成这些功能,这样的元字符称为定位元字符,它匹配的是字符串出现的位置而不是字符串本身。

    行首匹配(^元字符)

    ^元字符代表行首,而不是具体的字符。

    var myString = "JavaScript和正则表达式";

    var regex = /^JavaScript/;

    if(regex.test(myString)){

    alert("匹配成功");

    }else{

    alert("匹配失败");

    }

    上面的正则表达式匹配以“JavaScript”开头的字符串,如果不是以“JavaScript”开头,哪怕是前面多一个空格符,匹配也不会成功。

    行尾匹配($元字符)

    $元字符表示行尾匹配,它的用法于^元字符相同。

    var myString = "JavaScript和正则表达式";

    var regex = /正则表达式$/;

    if(regex.test(myString)){

    alert("匹配成功");

    }else{

    alert("匹配失败");

    }

    如果上面的字符串的结尾是一个标点、空白符或其它字符,那么匹配失败。

    单词匹配(\b元字符)

    某些时候我们想要在字符串中查找一个完整的单词,而不是包含在某个单词中的部分子串。例如:我们想要查找的是单词man,而不是单词superman中的man。此时,我们就可以使用元字符\b来指定这种类型的匹配。例如下面的例子查找字符串中是否有单词man。

    var myString = "A man without money is no man at all.";

    var regex = /\bman\b/;

    if(regex.test(myString)){

    alert("在字符串中找到匹配的模式/\\bman\\b/的子串。");

    }else{

    alert(在字符串中未找到匹配的子串。);

    }

    如果将字符串中的man该为superman,那么将匹配失败。

    相关阅读

    展开全文
  • 1.什么是正则表达式 2.如何使用正则表达式 3.获取正则对象 4.字符类别 5.字符集合 6.字符限定 ...什么是正则表达式?... Regular Expression,简称RegExp,是一种描述字符串结构的语法规则,是一种特定的...使用方法 ...
  • 正则啊,就像一座灯塔,当你在字符串的海洋...—— 节选自 Stinson 同学的语文排比句练习《正则》欣赏了一段文学节选后,我们正式来梳理一遍JS中的正则,本文的首要目的是,防止我经常忘记正则的一些用法,故梳理和...
  • 前面几节讲解了如何在JavaScript使用正则表达式,以及如何执行匹配,本节就来讲一下正则表达式的具体语法。正则表达式是一种通用的工具,在JavaScript、PHP、Java、Python、C++等几乎所有的编程语言中都能使用;...
  • script type="text/javascript"> function doCheck() { var reg = /^([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+@([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+\.[a-zA-Z]{2,3}$/; var v = document....
  • js正则表达式验证用户名密码

    千次阅读 2021-03-06 20:19:08
    1.js正则表达式用法 参考:https://www.runoob.com/js/js-regexp.html 2.验证用户名 var pat=/[\w\u4e00-\u9fa5]{6,12}/ var username="我是用户名2fjlj" var r=pat.exec(username) if(r!=null){ if(r.length==...
  • 那么本文就来分享一下关于JS正则表达式来校验输入的邮箱和手机号是否正确的方法。 通过正则表达式可以做很多事情,这里只是简单的来介绍一下通过正则表达式来校验账户信息相关的使用,对正则表达式感兴趣的可以另...
  • var regular = new RegExp(/这里是正则表达式/);if (regular.test(str)) {console.log("符合条件");} else {console.log("不符合条件");}//或者var str = "待验证文本";if (/这里是正则表达式/.test(str)) {c...
  • 常用js正则表达式 Javascript正则表达式实战手册

    千次阅读 多人点赞 2018-08-13 00:22:33
    我个人的习惯是,能通过查手册获取的东西绝不死记硬背,虽然大多数技术网站都搜罗了一堆Javascript正则表达式用法,但我还是想整理一份更有实战意义的手册。说白了就是,如果以后需要用到正则表达式,直接过来复制...
  • 贪婪、非贪婪与回溯PHP正则表达式的效率 回溯与固化分组正则表达式之回溯AS3 js正则表达式 反向引用(backreference)详解JavaScript正则表达式之分组匹配及反向引用php正则表达式的模式修正符和逆向引用使用介绍PHP...
  • 本文实例讲述了JS正则表达式常见函数与用法。分享给大家供大家参考,具体如下: search()使用正则表达式 //使用正则表达式搜索 "Runoob" 字符串,且不区分大小写 var str = "Visit Runoob!"; var n = str.search(/...
  • 正则表达式 Regular Expression 简写:RegExp 正则表达式作为一个模板,将某个字符模式与所搜索的字符进行匹配,匹配的内容一定时字符串的内容 由两种字符组成 1.普通字符(26个英文字母、数字等) 2.特殊字符(有...
  • 文章目录JS正则表达式 匹配与搜索一、方括号,圆括号二、修饰符三、元字符四、量词2.读入数据总结 JS正则表达式 匹配与搜索 使用正则的查找替换 regexp()返回相匹配的子串的起始位置,没有相匹配的则返回-1 ...
  • 去掉前后位空格的方法有很多种,下面脚本之家小编给大家分享使用js正则表达式如何删除前后空格,感兴趣的朋友跟着一起学习学习吧
  • 正则表达式 1. 什么是正则表达式? 百度百科提供的概念是这样的:正则表达式,又称规则表达式**。**(英语:Regular Expression,在代码中常简写为regex、regexp或RE),计算机科学的一个概念。其通常被用来检索、...
  • 首先不得不说的是,正则真的是yyds 使用slice/substring/substr/ 都不能很完美的解决问题 于是百度了一下 果不其然高手在民间 在此感谢大佬 正则测试工具 http://tools.jb51.net/regex/javascript 正则生成工具 ...
  • 1. 正则表达式使用 一个正则表达式可认为是对一种字符片段的特征描述,而它的作用就是从一堆字符串中找出满足条件的子字符串。 比如:在JavaScript中定义一个正则表达式 var reg = /hello/ 或 var reg = new ...
  • JS正则表达式"^"的用法

    千次阅读 2019-03-11 17:44:33
    用法一: 限定开头 文档上给出了解释是匹配输入的开始,如果多行标示被设置成了true,同时会匹配后面紧跟的字符。 比如 /^A/会匹配"An e"中的A,但是不会匹配"ab A"中的A 用法二:(否)取反 ...
  • 基本的一些登陆注册验证,如:长度验证、数字验证、非空、字母等
  • JavaScript正则表达式

    2021-08-08 15:58:43
    正则表达式:又称规则表达式 英文名为Regular Expression,在代码中常简写为regex、RegExp或RE 正则表达式用于定义一些字符串的规则,计算机可以根据正则表达式,来检查一个字符串是否符合规则,可以将字符中...
  • 如何使用正则表达式

    2021-06-08 15:38:28
    正则表达式^和$有什么用?如题,正则表达式^(行的开头)$(行的结尾) 有什么用,比如[a-z] 和 ^这里^匹配要检索的文本的开头,$匹配文本的结束。 ^[a-z]$匹配的情况是你检索的文本只有一个小写字母的情况,而[a-z]匹配...
  • 一、js正则表达式之replace函数用法: 函数功能:replace函数返回根据正则表达式进行文字替换后的字符串的复制。 函数格式:stringObj.replace(rgExp, replaceText) 参数:字符串stringObj,rgExp正则表达式,...
  • 文章目录一、正则表达式的作用二、正则表达式中的两个方法test() : 返回一个boolean值,代表是否匹配exec() : 返回一个数组,数组中存放的是正则匹配的元素三、JS中定义一个正则表达式1. /.../ 以 / 开头,/ 结尾,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 123,496
精华内容 49,398
关键字:

js正则表达式用法