JS正则表达式

一.正则表达式的创建
    1.1创建一个正则表达式
         法一. re = /pattern/[flags]
         法二. re = new RegExp("pattern",["flags"]) 
    1.2参数说明:
          re:  变量名(必选)
          pattern: 正则表达式(必选)
          flags:标志,包括以下几种:
                   g (全文查找出现的所有 pattern) 
                   i (忽略大小写) 
                   m (多行查找)
     1.3用于创建正则表达式的字符        
字符 描  述
\ 有以下两种:
  • 字符通常按字面处理,指示下一个为特殊字符不必完全按字面解释;如:/b/ 匹配字符 'b',通过在字符 b 前放置反斜杠,即 /\b/,字符就成为特殊并匹配一个单词边境;
  • 指示下一个字符不是特殊字符并按字面解释;如: * 是一个特殊字符意味着前0个或多字符将匹配,如 /a*/ 意味着匹配 0 或更多的 a,为了按字面匹配 *,需在其前加反斜杠(如 /a\*/ 匹配 'a*')。
^ 匹配输入或行的开始,如 /^A/ 不匹配 "an A" 中的字符 'A',但匹配 "An A"
$ 匹配输入或行的结尾,如 /t$/ 不匹配 "eater" 中的字符 't',但匹配 "eat"
* 匹配前0个或多个字符,如 /bo*/ 匹配 "A ghost booooed" 中的 'boooo' 和 "A bird warbled" 的 'b',但在 "A goat grunted" 中无匹配
+ 匹配前1个或多个字符,等价于 {1,},如 /a+/ 匹配 "candy" 中的字符 'a',以及 "caaaaaaandy" 中的所有 a
? 匹配前0个或1个字符,如 /e?le?/ 匹配 "angel" 中的 'el',以及 "angle" 中的 'le'
. 匹配任何单一字符除了换行符,如 /.n/ 在语句 "nay, an apple is on the tree" 中匹配 'an' 和 'on' ,但不匹配 'nay'
(x) 匹配 'x' 并存储该匹配,如:在语句 "foo bar." 中 /(foo)/ 匹配并存储 'foo',该匹配子串可以被数组元素 [1], ..., [n] 中调用,或从预定义 RegExp 对象属性 $1, ..., $9 中调用。
x|y 匹配 'x' 或'y',如:/green|red/ 匹配语句 "green apple" 中的 'green',以及语句 "red apple" 中的 'red'
{n}

n 是一个正整数,精确匹配前 n 个出现的字符,如:/a{2}/ 并不匹配 "candy" 中的字符 'a',但它匹配 "caandy" 中的两个 a,以及 "caaandy" 中的第一和第二个字符 a。

{n,} n 是一个正整数,匹配至少前 n 个出现的字符,如:/a{2,}/ 不匹配 "candy" 的字符 'a',但匹配 "caandy" 和 "caaaaaaandy" 中所有的字符 'a'。
{n,m} n 和 m 是一个正整数,匹配至少前 n 个但最多 m 个的字符,如:/a{1,3}/ 在 "cndy" 中无匹配,而匹配 "candy" 中的 'a'、 "caandy" 中的第一和第二个 'a',以及 "caaaaaaandy" 中第一到第三个 'a'(即 "aaa"),虽然原始字符串中有更多个字符 'a'。
[xyz] 一个字符集合,匹配任一内附的字符,您也可以用连接符指定一个字符范围,如:[abcd] 等同于 [a-d]。它可以匹配 "brisket" 中的 'b' 和 "ache" 中的 'c'。
[^xyz] 一个负数或补码字符集合,它匹配没有内附在方框号中的任何字符,同样您也可以用连接符指定一个字符范围,如:[^abc] 等同于 [^a-c],它可以匹配 "brisket" 中的 'r',但不匹配其中的 'b'。
[\b] 匹配一个退格 backspace(不要同 \b 搞混淆)
\b 匹配一个单词边界(字符串中各字符的分界,如空白和换行符),如:/\bn\w/ 匹配 "noonday" 中的 'no' ,/\wy\b/ 匹配 "possibly yesterday" 中的 'ly'。
\B 匹配一个非单词边界,如:/\w\Bn/ 匹配 "noonday" 中的 'on',/y\B\w/ 匹配 "possibly yesterday" 中的 'ye'。
\cX 此处 X 为一个控制字符,它匹配字符串的控制字符,如 /\cM/ 匹配字符串中的 control-M。
\d 匹配一个数字符,等同于 [0-9],如:/\d/ 或 /[0-9]/ 均匹配 "B2 is the suite number" 中的 '2'。
\D 匹配任何非数字符,等同于 [^0-9],如:/\D/ 或 /[^0-9]/ 匹配 "B2 is the suite number" 中的 'B'。
\f 匹配换页符
\n 匹配换行符
\r 匹配回车符
\s 匹配一个单独空白字符,包括空格、制表符、换页、换行,等同于 [ \f\n\r\t\v],如:/\s\w*/ 匹配 "foo bar" 中的 ' bar'。
\S 同上面相反,它匹配除了空白符外的单一字符,等同于 [^ \f\n\r\t\v],如:/\S\w*/ 匹配 "foo bar" 中的 'foo'。
\t 匹配一个制表符
\v 匹配一个垂直制表符
\w 匹配任何包含下划线的字母和数字字符,等同于 [A-Za-z0-9_],如:/\w/ 匹配 "apple" 中的 'a',"$5.28" 是的 '5' 和 "3D" 中的 '3'。
\W 匹配任何非字母和数字符,等同于 [^A-Za-z0-9_],如:/\W/ 或 /[^$A-Za-z0-9_]/ 匹配 "50%" 中的 '%'。
\n n 是一个正整数,返回存储的匹配引用,如:/apple(,)\sorange\1/ 匹配 "apple, orange, cherry, peach" 中的 'apple, orange,'。
注意:如果左边的括号少于 \n 中指定的数字,\n 作为一个八进制转义字符(见下行)
\ooctal
\xhex

\ooctal 是一个八进制转义字符值,\xhex 是一个十六进制转义字符值,允许您植入一个 ASCII 码到规则表达式。

 

      1.4常用的正则表达式

      

 序号作用正则表达式
1要求是手机^[1]{1}[3]{1}(\d){9}$
2要求是电话^((\d){3,4}[-]{1})?([1-9]{1}(\d){5,7})([-]{1}(\d){1,6})?$
3要求是日期(1999-10-02)^\d{4}-\d{1,2}-\d{1,2}
4要求是非负整数(正整数 + 0) ^\d+$ 
5要求是正整数 ^[0-9]*[1-9][0-9]*$
6要求是非正整数(负整数 + 0^((-\d+)(0+))$
7要求是负整数 ^-[0-9]*[1-9][0-9]*$
8要求是整数^-?\d+$
9要求是非负浮点数(正浮点数 + 0^\d+(\.\d+)?$
10要求是正浮点数^(([0-9]+\.[0-9]*[1-9][0-9]*)([0-9]*[1-9][0-9]*\.[0-9]+)([0-9]*[1-9][0-9]*))$
11要求是非正浮点数(负浮点数 + 0)^((-\d+(\.\d+)?)(0+(\.0+)?))$
12要求负浮点数^(-(([0-9]+\.[0-9]*[1-9][0-9]*)([0-9]*[1-9][0-9]*\.[0-9]+)([0-9]*[1-9][0-9]*)))$
13要求是浮点数 ^(-?\d+)(\.\d+)?$ 
14要求是由26个英文字母组成的字符串 ^[A-Za-z]+$ 
15要求是由26个英文字母的大写组成的字符串  ^[A-Z]+$ 
16要求是由26个英文字母的小写组成的字符串 ^[a-z]+$ 
17要求是由数字和26个英文字母组成的字符串 ^[A-Za-z0-9]+$ 
18要求是由数字、26个英文字母或者下划线组成的字符串 ^\w+$
19要求是mail^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$
20要求是汉字 ^[\u4e00-\u9fa5],{0,}$
21要求是身份证\d{18}|\d{15}
22要求是邮编\d{6}

23

要求是密码(以字母开头,且为6-16位)^[a-zA-Z]\w{5,17}$

 二.正则表达式的应用
     2.1使用方法
   在javascript中,通过RegExp 的 test 、exec 方法和 String 的 match、replace、search 、split 进行匹配处理

方法 描    述
exec 在字符串中执行搜索一个匹配的 RegExp 方法,它返回查找结果的数组
test 在字符串中测试一个匹配的 RegExp 方法,返回 true 或 false
match 在字符串中执行搜索一个匹配的 String 方法,返回一个信息的数组或错配后返回一个 null
search 在字符串中测试一个匹配的String 方法,返回匹配的索引,或错配后返回 -1
replace 在字符串中执行搜索一个匹配的 String 方法,并用另一个替换的该匹配的子串
split 一个 String 方法,用规则表达式或一个固定字符串分离为子串的数组

转载于:https://www.cnblogs.com/yuankexiong313/archive/2010/04/14/1711562.html

基于正则表达式的JavaScript/C++语法高亮(js版) JavaScript的语法高亮一直是个难点,因为需要语义分析以确定/是除法操作的开始还是正则表达式的开始。目前关于高亮js的语法高亮都不是很理想,尤其是syntaxhighlighter(你待会看到的代码高亮效果就是它弄的, csdn说, 就用sh了)的效果算是最差的了,根本就不高亮正则、数字等,太不敬业了。假设你写的代码是足够规范的,而且不考虑效率的话,那么你使用我这个高亮js一般不会有问题。 阅读详情

相关推荐

【星火】海思HI3516C开发板实战:基于LVGL与MPP库的行车记录仪/电子显微镜方案

本文详细介绍了基于海思HI3516CV500开发板,结合LVGL图形库与海思MPP媒体处理平台,实现行车记录仪与电子显微镜方案的完整实战过程。内容涵盖从系统环境搭建、驱动配置到应用开发的全流程,重点解析了MPP视频流处理管道与LVGUI界面协同工作的核心机制,为嵌入式音视频开发提供了可复用的参考方案。

weixin_42126677的博客 160

【JS】JavaScript正则表达式基础

目录一、正则表达式二、字符串使用正则表达式三、常用例子 一、正则表达式 关于正则表达式,我在另一篇博客记录过:正则表达式 二、字符串使用正则表达式 三、常用例子

小绵杨 2208

SSD盘符漂移导致OSD down场景模拟与恢复

运维团队反馈一个问题,现象是:某个OSD对应的cache分区发生了变化,比如原来cache使用的分区是/dev/sde,后来还是这块盘,但分区信息不知何故,变成了/dev/sdf(产品OSD设备并不是根据分区名称来map,而是根据partlabel),最终的现象是这个OSD down了,没法启动.接到这个现象的反馈后,记录一下这个问题在lab的复现方法。

Gavin Blog 939

JS正则表达式介绍(JavaScript正则表达式)

JavaScript正则表达式是一种强大的文本处理工具,掌握其基本语法和高级技巧可以大幅提高文本处理效率。正则表达式由元字符、量词、分组等组成,通过合理组合这些元素,能够实现复杂的模式匹配需求。正确理解和使用标志(flags)可以让正则表达式匹配更精确、更高效,适应不同的文本处理需求。在实际应用中,需要注意正则表达式的可读性和性能问题,避免过于复杂的模式导致难以维护或性能下降。

Dontla的博客 1758

告别手工AS91/AB01L:用BAPI_FIXEDASSET_OVRTAKE_CREATE实现SAP资产历史数据自动化迁移

本文详细解析了如何利用BAPI_FIXEDASSET_OVRTAKE_CREATE实现SAP资产历史数据的自动化迁移,替代传统手工操作如AS91/AB01L。通过核心参数解析、迁移逻辑说明及实战案例,帮助顾问团队提升资产和折旧数据迁移的效率与准确性,确保数据一致性并降低错误风险。

weixin_42524708的博客 418

MAIXCAM无线连接实战:5分钟搞定远程调试与代码烧录(避坑版)

本文提供了一份详细的MAIXCAM无线连接实战指南,帮助嵌入式视觉开发者快速配置远程调试与代码烧录。文章重点介绍了通过MaixHub IDE进行Wi-Fi配置、建立远程终端连接、使用SFTP进行文件传输以及管理自启动应用程序的完整流程,并针对IP地址变动、信号中断等常见问题提供了实用的避坑解决方案,旨在提升开发效率与灵活性。

weixin_29188043的博客 298

【JavaScript】一文了解JS的正则表达式

详解JavaScript中正则表达式

ztK63LrD的博客 2220

82、yolov11检测模型迁移瑞芯微rk3588和使用昇腾设备300i DUO卡推理 batch=1/3,支持昇腾NMS迁移npu推理

本文介绍了使用昇腾设备进行分割推理的测试流程,包括两种测试方式(cann+onnx和om)。首先验证300iDUO卡的可用性,随后创建Docker镜像和容器以搭建独立环境。通过从指定仓库拉取Ubuntu 20.04镜像,创建容器并映射目录。进入容器后安装必要组件(Python3、GCC等)和系统工具(pciutils、net-tools等),为后续模型转换和迁移做准备。整个流程旨在构建可交付给第三方的标准化测试环境。

sxj731533730 1202

常用js正则表达式 Javascript正则表达式实战手册

最近做了几个项目,发现正则表达式用得越来越多了。我个人的习惯是,能通过查手册获取的东西绝不死记硬背,虽然大多数技术网站都搜罗了一堆Javascript正则表达式的用法,但我还是想整理一份更有实战意义的手册。说白了就是,如果以后需要用到正则表达式,直接过来复制粘贴就行啦!我会尽量把排版做的漂亮一点,便于大家提高开发效率。前面是Javascript正则表达式的简明用法,实战内容请跳到最后一节。   ...

xh601的博客 5308

【YOLO】Mask Proto分支理解

Mask Proto分支通过解耦全局原型与实例参数,在保持YOLO实时性的同时实现精准分割。其技术核心在于利用多尺度特征生成可组合的原型,结合动态系数适应不同目标形态。未来可进一步融合Transformer的注意力机制,增强对复杂场景的建模能力。

浩瀚之水的专栏 476

[QMT量化交易小白入门]-七、可转债双低策略Python代码详解与实战

本专栏主要是介绍QMT的基础用法,常见函数,写策略的方法,也会分享一些量化交易的思路,大概会写100篇左右。QMT的相关资料较少,在使用过程中不断的摸索,遇到了一些问题,记录下来和大家一起沟通,共同进步,自己淋过雨了,希望大家都有一把伞。

木头大左的博客 3864

【JS】JavaScript正则表达式详细使用

目录1、描述字符范围 : [ ]2、选择匹配:| 在上一篇博客中,记录了js中正则表达式的简单使用:【JS】JavaScript正则表达式基础。这篇博客学习一下JavaScript中正则表达式的详细使用。 1、描述字符范围 : [ ] 在正则表达式语法中,方括号表示字符范围。在方括号中可以包含多个字符,表示匹配其中任意一个字符。如果多个字符的编码顺序是连续的,可以仅指定开头和结尾字符,省略中间字符,仅使用连字符~表示。如果在方括号内添加脱字符^前缀,还可以表示范围之外的字符。例如: [abc]:查找方括号内

小绵杨 1705

一文让你轻松理解Wi-Fi理论速率计算方式

如上所示,在使用FDM的802.11协议上,最小子载波带宽为312.5KHz,那一个信道频宽为20MHz的信道可以分成64个子载波,但是由于技术原因,有效使用的是52个子载波,实际用于数据传输的只有48个,有4个子载波充当导频载波。载波:交流信号或者直流信号本身不具备数据传输能力,但是如果信号发生很小的波动或者变化,从而实现数据的收发。所谓子载波,就是将信号划为为很多的小信道,这些小信道可以实现数据的并发传输,子载波我们英文称为subcarrier,也称为音调(tone)。Symbol time如下所示。

1042484520@qq.com(邮箱) 3448

javascript(js)正则表达式基本用法

1.什么是正则表达式 Regular Expression使用单个字符串来描述、匹配一系列某个句法规则的字符串---按照某种规则去匹配符合条件的字符串 正则表达式应用场景 1.在IDE中使用正则表达式处理规则复杂的字符串查找、替换需求 2.在JavaScript程序设计中使用正则表达式处理字符串 3.在其他语言中 **推荐一个可视化正则表达式网站:http://regexper.com

on1y_rL的博客 633

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

JS(JavaScript) 数据校验 正则表达式

正则表达式是一门独立的语言,有自己的语法,用来检测指定字符串是否符合特定的规则正则表达式就是用来定义规则的,全称为Regular ExpressionJavaScript中提供了RegExp对象,表示正则表达式创建正则表达式对象的方式有两种使用字面量定义举例//a是定义的匹配规则,i是忽略大小写//通过reg的test函数进行验证使用构造函数定义举例//定义正则表达式,注意这里的双斜杠中的内容不能以变量传入,只能直接写入//a是定义的匹配规则,i是忽略大小写。

感谢阅读 3324

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

{JS}JavaScript使用正则表达式

 正则表达式概述在前面已经涉及了一些正则表达式的用法,现在将系统地学习正则表达式的语法和用途。正则表达式主要用于进行字符串的模式匹配,例如判断一个字符串是否符合指定格式等。例如在windows下搜索文件,可以用“*”或者“?”这样的通配符。在正则表达式的语法中,有更多这样的符号用于表示一个字符串的模式,表7.1列出了所有的特殊符号,它们也被称为元字符。表7.1 正则表达式中的元字符

283

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

js正则限制字符串长度_JavaScript 正则表达式

js中正则表通常被用来检索、替换那些符合某个模式(规则)的文本,例如验证表单,过滤(替换)页面内容中的一些敏感词汇。1.1什么是正则表达式正则表达式( Regular Expression )是用于匹配字符串中字符组合的模式。在JavaScript中,正则表达式也是对象。1.2 正则表达式的特点灵活性、逻辑性和功能性非常的强。可以迅速地用极简单的方式达到字符串的复杂控制。对于刚接触的人来说,比较晦...

weixin_39651488的博客 1万+

JavaScript/JS 中,如何连接两个正则表达式 RegExp

JavaScript 的正则表达式可以用两种表达方式: 这两种表达式等价。JS 正则有两个属性, 和 会输出它的标志, 则输出它的正则匹配串。利用这两个属性,就可以去拼接两个正则: 💥 注意 需要去重,不然 构造函数会抛出 错误。[1] How to Concatenate a Regular Expression......

YopenLang的博客 3808

JavaScript正则表达式

JS代码 <script> // QQ号 var num = "10566"; var qq = /^[1-9]{1}([0-9]{4,9})$/; //输出true console.log(qq.test(num)); // 手机号 var num1 = "17694531646"; var phoneNumber =/^[1-9]{1}[0-9]{10}$/; //输出true console.log(phon

xiaoguilong1的博客 301

【JS】JavaScript正则表达式

正则表达式 是一个描述字符模式的对象,JavaScript的RegExp类表示正则表达式,String和RegExp都定义了方法,后者使用正则表达式进行强大的模式匹配和文本检索与替换功能。JavaScript中的正则表达式用RegExp对象表示,可以使用RegExp()构造函数来创建RegExp对象,不过RegExp对象更多的是通过一种特殊的直接量语法来创建,正则表达式直接量定义为包含在一对斜线之间

Making Life Better. Making Others Better. 1367

js正则表达式全局匹配正斜杠_JavaScript正则表达式常用技巧

正则表达式是用于匹配字符串中字符组合的模式。在 JavaScript 中,正则表达式也是对象。这些模式被用于 RegExp 的 exec 和 test 方法, 以及 String 的 match、matchAll、replace、search 和 split 方法。正则表达式的掌握程度能粗略地看出程序员的技术底子,所以技术面试、编程竞赛等 都特别喜欢考察正则表达式。本篇就带你一起夯实一下 Ja...

weixin_39990250的博客 2145

js正则表达式

<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>js正则表达式</title> <!-- .----\. 数量词 X?:0次或1次 X+:出现1次或多次 X*:出现0次或多次 ...

family_love_1998的博客 214

Javascript常用正则表达式以及JS常见正则表达式笔试题

JS正则表达式,在表单验证等方面都有应用,下面结合学习经过,整理一些初学 者所需要掌握的一些基本JS正则规则: 1.正则表达式基础语法练习 (1)校验邮政编码(由六位组成) 这里要注意,不能写成/\d{6}/,如果写成这样,那么校验内容为7位时,也 能通过校验! 我们同样也可以写成a=/\b\d{6}\b/;或者a=/^\d{6}\b/ (2)

liwusen的博客 8212

js html正则解析,JavaScript 正则表达式解析

JavaScript 正则表达式解析更新时间:2009年02月21日 03:51:20 作者:正则表达式是一个描述字符模式的对象。JavaScript的RegExp对象和String对象定义了使用正则表达式来执行强大的模式匹配和文本检索与替换函数的方法.在JavaScript中,正则表达式是由一个RegExp对象表示的.当然,可以使用一个RegExp()构造函数来创建RegExp对象,也可以用...

weixin_34416115的博客 427
上一篇: IIS访问网站的用户过多解决方法
下一篇: 哀悼使网站整体变灰或黑
dianlvedi1663
博客等级 码龄11年 0粉丝 0原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值