精华内容
下载资源
问答
  • js正则匹配table tr

    2020-10-30 19:02:03
    js正则匹配table tr
  • 主要介绍了php与javascript正则匹配中文的方法,结合实例形式分析了针对utf-8与GBK编码情况下的php、javascript正则匹配中文操作技巧,需要的朋友可以参考下
  • 这个需求有两个难点,一,是如何使用正则匹配所有半角英文标点符号,二,是如何验证密码段中在要求的四种(大写字母,小写字母,数字,标点符号)类型中至少存在三种。 首先,我们来解决第一个难点:如何使用正则匹配...

    概述

    在JS密码校验中常常会遇到密码强度的校验需求,借用一位朋友提问的图,他在工作中遇到的一个比较经典的密码强度校验要求:

    xuqiu.jpg

    这个需求有两个难点,一,是如何使用正则匹配所有半角英文标点符号,二,是如何验证密码段中在要求的四种(大写字母,小写字母,数字,标点符号)类型中至少存在三种。

    首先,我们来解决第一个难点:如何使用正则匹配所有半角英文标点符号。

    太长不看版:

    满足需求:使用js正则匹配所有半角英文标点符号(不含大小写字母)

    解决方案:使用正则表达式:/[\x21-\x2f\x3a-\x40\x5b-\x60\x7B-\x7F]/

    详细说明

    一般使用正则表达式匹配标点符号的常用做法是并:直接在正则表达式中书写标点符号并对需要转义的标点符号加""进行转义。
    如匹配文章中的句号、问号和叹号(半角符号)可以写成:

    <script>
        var reg = /[\?\!\.]/;
    </script>

    但如果需要匹配的英文符号不是少数的几个,而是全部,这种一个一个的写法就显得很臃肿。为了解决这种写法臃肿的问题,那我们就可以将目光投向另一种正则表达式中支持的字符表示模式:ASCII码字符。

    ASCII(pronunciation: /ˈæski/ ASS-kee,American Standard Code for Information Interchange,美国信息交换标准代码)是基于拉丁字母的一套电脑编码系统。它主要用于显示现代英语,而其扩展版本EASCII则可以部分支持其他西欧语言,并等同于国际标准ISO/IEC 646。由于万维网使得ASCII广为通用,直到2007年12月,逐渐被Unicode取代。

    在正则表达式中既支持ASCII码字符,同时也支持unicode码字符,但为了节省表达式长度,在这里我们选用了ASCII码进行处理。

    下图为ASCII码的经典对照表:

    标准表.jpg

    引用自百度百科

    比如我们要校验文章中的问号,使用ASCII码编写正则就可以写为:

    <script>
        var reg = /\x3F/;
    </script>

    而且因为半角符号在ASCII编码中排列较为连续,故可以采用 "-" 进行连接,每个符号具体的十六进制ASCII编码数可通过查表获取。最后拼成的正则表达式为:

    <script>
        var reg = /[\x21-\x2f\x3a-\x40\x5b-\x60\x7B-\x7F]/;
    </script>

    即能满足匹配所有半角英文符号的需求。

    转载于:https://www.cnblogs.com/coder-xianbing/p/7380759.html

    展开全文
  • 主要介绍了js正则匹配出所有图片及图片地址src的方法,涉及javascript正则匹配及页面元素操作的相关技巧,需要的朋友可以参考下
  • 主要介绍了JS正则匹配中文的方法,结合具体实例形式分析了JS针对中文的匹配操作相关技巧与注意事项,需要的朋友可以参考下
  • 这个需求有两个难点,一,是如何使用正则匹配所有半角英文标点符号,二,是如何验证密码段中在要求的四种(大写字母,小写字母,数字,标点符号)类型中至少存在三种。 首先,我们来解决第一个难点:如何使用正则匹配...

    概述

    在JS密码校验中常常会遇到密码强度的校验需求,借用一位朋友提问的图,他在工作中遇到的一个比较经典的密码强度校验要求:

    xuqiu.jpg

    这个需求有两个难点,一,是如何使用正则匹配所有半角英文标点符号,二,是如何验证密码段中在要求的四种(大写字母,小写字母,数字,标点符号)类型中至少存在三种。

    首先,我们来解决第一个难点:如何使用正则匹配所有半角英文标点符号。

    太长不看版:

    满足需求:使用js正则匹配所有半角英文标点符号(不含大小写字母)

    解决方案:使用正则表达式:/[\x21-\x2f\x3a-\x40\x5b-\x60\x7B-\x7F]/

    详细说明

    一般使用正则表达式匹配标点符号的常用做法是并:直接在正则表达式中书写标点符号并对需要转义的标点符号加""进行转义。
    如匹配文章中的句号、问号和叹号(半角符号)可以写成:

    <script>
        var reg = /[\?\!\.]/;
    </script>

    但如果需要匹配的英文符号不是少数的几个,而是全部,这种一个一个的写法就显得很臃肿。为了解决这种写法臃肿的问题,那我们就可以将目光投向另一种正则表达式中支持的字符表示模式:ASCII码字符。

    ASCII(pronunciation: /ˈæski/ ASS-kee,American Standard Code for Information Interchange,美国信息交换标准代码)是基于拉丁字母的一套电脑编码系统。它主要用于显示现代英语,而其扩展版本EASCII则可以部分支持其他西欧语言,并等同于国际标准ISO/IEC 646。由于万维网使得ASCII广为通用,直到2007年12月,逐渐被Unicode取代。

    在正则表达式中既支持ASCII码字符,同时也支持unicode码字符,但为了节省表达式长度,在这里我们选用了ASCII码进行处理。

    下图为ASCII码的经典对照表:

    标准表.jpg

    引用自百度百科

    比如我们要校验文章中的问号,使用ASCII码编写正则就可以写为:

    <script>
        var reg = /\x3F/;
    </script>

    而且因为半角符号在ASCII编码中排列较为连续,故可以采用 "-" 进行连接,每个符号具体的十六进制ASCII编码数可通过查表获取。最后拼成的正则表达式为:

    <script>
        var reg = /[\x21-\x2f\x3a-\x40\x5b-\x60\x7B-\x7F]/;
    </script>

    即能满足匹配所有半角英文符号的需求。

    展开全文
  • JavaScript 正则匹配英文姓名

    千次阅读 2019-12-07 17:09:15
    工作中突然想给姓名输入框加入正则匹配的验证,以防止用户输入的姓名比网络昵称还奇葩,结果还真费了不少功夫。 首先我们确认规则: ①中英文文字不能混杂 ②汉字不能夹杂任何特殊字符和空格(如果要兼容少数民族...

    工作中突然想给姓名输入框加入正则匹配的验证,以防止用户输入的姓名比网络昵称还奇葩,结果还真费了不少功夫。

    首先我们确认规则:

    ①中英文文字不能混杂

    ②汉字不能夹杂任何特殊字符和空格(如果要兼容少数民族的姓名的话可以参考英文的匹配写法)

    ③英文只能夹杂空格,且不能在开头结尾

    中文的名称规范很简单:

    let reg = /^[\u4e00-\u9fa5]+$/;

    英文的名称规范就相对复杂了,因为空格不能在开头结尾,且不能连续。所以我们可以换个角度思考:

    英文名称就是一个存储着多个纯字母字符串的数组,然后用空格连起来。因此,除最后一段字母以外,其他所有字母串都默认紧随一个空格,最后必须以字母结尾。因此思路为:

    ①匹配多个字母,并以空格结尾,匹配0次或多次

    ②结尾匹配多个字母

    代码如下:

    let reg = /^([a-zA-Z]+\s)*[a-zA-Z]+$/;

    当然,我们也可以要求用户的姓名必须以大写字母开头:

    let reg = /^(\b[A-Z][a-z]*\s)*\b[A-Z][a-z]*$/;

    考虑到本人作为一名中国人,对老外的起名习惯不太了解,所以“限制大写开头”的规则并没有实际使用,还是使用了比较稳妥的“不限制大小写”的版本,没准用户也是个痴迷驼峰命名法的程序员呢(笑)。

    综合两个正则规则,我们的用户姓名限制条件写为:

    let reg = /(^([a-zA-Z]+\s)*[a-zA-Z]+$)|(^[\u4e00-\u9fa5]+$)/;

     另:这里标记我发现的一个坑。

    我曾设想英文的匹配规则如下:

    “匹配多个字母串,以字母开头,结尾的空格可有可无,整个字符串最后必须是一个字母。”

    写法如下:

    let reg = /(^([a-zA-Z]+\s?)*[a-zA-Z]$)/; // 存在缺陷,请勿使用

    进行测试:

    console.log(reg.test('Ahsflu Aaif Adfssafea'));
    // true

    测试结果证明,该匹配规则可以验证英文姓名。 

    那么问题来了,缺陷在哪里呢?我当时自信地以为找到了不错的匹配规则,但是进行进一步测试的时候发现,这个正则匹配偶尔会卡住!

    我们来测试一下:

    let reg = /(^([a-zA-Z]+\s?)*[a-zA-Z]$)/;
    console.time('time');
    console.log(reg.test('Ahsflu Aaif Adfssafea'));
    console.timeEnd('time');
    console.time('time');
    console.log(reg.test('Ahsflu Aaif Adfssadsaffea'));
    console.timeEnd('time');
    console.time('time');
    console.log(reg.test('Ahsflu Aaif Adfssadsdsfaaffea'));
    console.timeEnd('time');
    console.time('time');
    console.log(reg.test('Ahsflu Aaif Adfsaffea '));
    console.timeEnd('time');
    console.time('time');
    console.log(reg.test('Ahsflu Aaif Adfsadsfsdafasdffea '));
    console.timeEnd('time');

    显示结果如下:

    true
    time: 8.811ms
    true
    time: 0.694ms
    true
    time: 0.707ms
    false
    time: 1.921ms
    false
    time: 1192.601ms

    注意到了吗?当测试的字符串结尾有空格的时候,整个正则匹配需要的时间随着字符串长度增加而呈现爆炸式增长。很明显这与正则表达式中的'\s?'这个表示可有可无的空格有关。

    我的猜测是:由于正则匹配默认采用“贪心”模式,当结尾为空格时,正则匹配根据第一项' ([a-zA-Z]+\s?)* '可以正确的匹配到结尾,但是却发现下一项' [a-zA-Z] '匹配失败了,由于第一项最后的*(匹配1至多个)原则,匹配存在多种可能,程序尚不能判定结果为true还是false,所以必须推倒重来,进行多次尝试。在程序尝试完所有可能的情况之后,程序终于判定字符串不合法,才输出false。

    实际情况是:只要我们删掉'\s?'中的'?'指令,这个bug就不复存在了。

    这件事情告诉我们在正则匹配中要谨慎使用'?',正如它的含义“可有可无”一样,被'?'形容的规则可以存在于范围内任何可能的地方,这对于死板的程序来说无疑是一个噩梦。

    另外,连续使用console.time()方法统计时间的时候,第一项往往会需要更长的时间(分配内存什么的),console.time()统计的时间包括自身。所以即便是统计一个空的语句段,第一次console.time()方法也会比后续方法多出几倍甚至几十倍的时间。

    展开全文
  • js正则匹配换行过程中会出现很多的问题,本文将提供详细的解决方法,需要的朋友可以参考下
  • 主要介绍了js正则匹配多个全部数据问题,本文通过两种方式给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
  • 本文实例讲述了JS正则匹配URL网址的方法。分享给大家供大家参考,具体如下:最强的匹配网址-url的正则表达式:匹配www,http开头的一切网址直接插入正则表达式:[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(\.[a-zA-Z0-9][-a-zA-Z0...

    本文实例讲述了JS正则匹配URL网址的方法。分享给大家供大家参考,具体如下:

    最强的匹配网址-url的正则表达式:匹配www,http开头的一切网址

    直接插入正则表达式:

    [a-zA-Z0-9][-a-zA-Z0-9]{0,62}(\.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+\.?

    完整的js方法:

    function isURL(domain) {

    var name = /[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(\.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+\.?/;

    if( !(name.test(domain)))

    {

    return false;

    }

    else

    {

    return true;

    }

    }

    可以匹配如下格式的网址:

    www.abc.com

    http://www.abc.com

    http://sub.abc.com

    abc.com/a/b.html

    。。。

    其实这个正则只是匹配xxx.yyy,所以只要是有这样格式的网址都可以。所以要求很严格的网址应该是不够的。。。

    PS:这里再为大家提供2款非常方便的正则表达式工具供大家参考使用:

    希望本文所述对大家JavaScript程序设计有所帮助。

    展开全文
  • 主要介绍了JS正则匹配URL网址的方法,可实现匹配www,http开头的一切网址的功能,涉及JS正则匹配字符串、数字及特殊字符构建URL的操作技巧,需要的朋友可以参考下
  • javascript正则匹配页面关键字,内附详细代码
  • 主要介绍了js正则匹配table,img及去除各种标签问题,需要的朋友可以参考下
  • js代码-js 正则匹配数字+指定字符+空格
  • JavaScript正则匹配 多行内容

    千次阅读 2020-11-11 21:53:10
    需求: 通过正则匹配给定代码块中的链接和标题 刚开始是通过以下正则匹配的, 尝试之后匹配失败 let reg = /<a href="(.*?)" class="">.<span class="title">(.*?)<\/span><\/a>/igs 观察后...
  • 在PHP和JavaScript中,正则表达式匹配所有字符(包含换行符)是不一样的。假设有这样的字符串:Hello,PHP,JavaScript现在,我们要从里面中找出后面两行,也就是多行查找。1 PHP实现在PHP中,这样写:$str = 'Hello,PHP...
  • js正则匹配可见字符

    2021-01-07 18:27:51
    正则匹配可见字符 数字大小写字母特殊符号 原理 ascii码33-126为可见字符,对应16进制为x21-x7e var str="agdggd#$%$^234"; patt=/[\x21-\x7e]*/;
  • 最近在尝试实现一个js模板引擎,其中涉及到使用js解析html字符串的功能。因为我实现的这个模板不止是要能替换参数输出html字符串,还要能够解析出每一个dom元素的名称及参数啥的。html网上找到了一个叫作t7(源码地址...
  • JS正则匹配

    2019-09-17 11:29:18
    js字符串经常匹配正则 route.path.replace(/^\//,'') //\转义字符
  • js正则匹配所有html标签 ''.replace(/<[^>]+>/g,"")
  • 主要为大家详细介绍了javascript的正则匹配方法,帮助大家更快更高效的学习javascript正则的相关内容,感兴趣的小伙伴们可以参考一下
  • 主要介绍了js实现正则匹配中文标点符号的方法,涉及JavaScript正则匹配与判定的简单使用技巧,需要的朋友可以参考下
  • javascript正则检测只含有汉字、数字、字母、下划线不能以下划线开头和结尾,需要的朋友可以参考下
  • js 正则匹配(去掉html标签)非常实用的。希望能够帮到你
  • 1.由数字、26个英文字母或者下划线组成的字符串: ^[0-9a-zA-Z_]{1,}$ 2.非负整数(正整数 + 0 ): ^/d+$ 3.正整数: ^[0-9]*[1-9][0-9]*$ 4.非正整数(负整数 + 0): ^((-/d+)|(0+))$ 5.负整数 : ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 122,862
精华内容 49,144
关键字:

js正则匹配英文