js之正则表达式

[b]一、RegExp [/b]
1.定义

var reCat = new RegExp("cat"); //匹配串中第一个"cat"
var reCat = new RegExp("cat","g"); //匹配串中所有的"cat","g"是global的意思
var reCat = new RegExp("cat","gi"); //匹配串中所有的"cat",不区分大消息,"i"是insensitive的缩写
var reCat = /cat/gi; //perl风格

2.方法
(1)test() 判断是否匹配,返回 true 或者 false

var sTomatch ="cat";
var reCat = /cat/;
alert(reCat.test(sTomatch));//outputs true

(2)exec() 返回一个数组,数组中的第一个条目是第一个匹配

var sTomatch = "a bat, a Cat, a fAt baT, a faT cat";
var reAt = /at/;
var arrMatches = reAt.exec(sTomatch);
alert(arrMatches.toString());

[b]二、String对象对正则表达式的支持 [/b]

(1)match()方法

var sTomatch = "a bat, a Cat, a fAt baT, a faT cat";
var reAt = /at/gi; var arrMatches = sTomatch.match(reAt);
alert(arrMatches.toString()); //outputs 'at,at, At ,aT ,aT ,at';

(2)replace()方法

var sToChange = "this red paper is not very red";
alert(sToChange.replace("red","blue"));//只替换第一个"red",outputs "this blue paper is not very red"
要想全部替换,如下

var sToChange = "this red paper is not very red";
var reRed = /red/gi;
alert(sToChange.replace(reRed,"blue"));


var str="ADF9DF9DF9",//那个文本文件中的字符串;
re=/9/gi,//匹配9
counter=0;//计数器
var rs = str.replace(re,function () {
counter++;//每出现一次匹配,函数就被执行一次,函数的返回值用来替换原值
return "#";
})

提取文件路径:

window.location.href.replace(/\/\w+\.\w+$/gi, "");

(3)split()方法

var sColor = "red,blue,yellow,green";
var reCom = /\,/ ; //因为","是正则表达式的元字符,所以用"\"来转义
var arrColors = sColor.split(reCom);

上面方法的效果等同于

var sColor = "red,blue,yellow,green";
var arrColors = sColor.split(",");

(4)search(expr),返回字符串中与expr相匹配的第一个匹配的index值。

var regx=/user\d/g;   
var str=“user13userddduser345”;   
var rs=str.search(regx);//0

[b]三、简单模式[/b]

(1)元字符。

正则表达式的所有元字符如下:
( [ { \ ^ $ | ) ? * + .
任何正则表达式要使用元字符,都必须转义:
var reTest = /\?/ ;
或者:
var reTest = new RegExp("\\?"); //注意:是两个反斜杠,为了避免js像处理 \n 一样处理 \? ,

必须双重转义。

如果删除字符串中的所有换行符,如下:
var sNewStr = sOldStr.replace(/\n/g,"");

(2)字符类:

<1>.简单类 使用[abc] ,表示匹配中括号内的字符
var reTest = /[abc]at/gi; //匹配串中'at'字符前是'a'或者'b'或者'c'
例如:


var sTomatch = "a bat, a Cat, a fAt baT, a faT cat";
var reAt = /[abc]at/gi;
var arrMatches = sTomatch.match(reAt);
alert(arrMatches); //outputs 'bat, Cat, baT, cat';

<2>.反向类 使用[^abc],表示不匹配中括号内的字符
var reTest = /[abc]at/gi; //匹配串中'at'字符前不是'a'不是'b'不是'c'

例如:

var sTomatch = "a bat, a Cat, a fAt baT, a faT cat";
var reAt = /[^abc]at/gi;
var arrMatches = sTomatch.match(reAt);
alert(arrMatches); //outputs 'fAt,faT';

<3>.范围类 [a-z] ,表示匹配a到z范围之间的
例如:

var sTomatch = "num1,num2,num3,num4,num5";
var reAt = /num[1-3]/g;
var arrMatches = sTomatch.match(reAt);
alert(arrMatches); //outputs 'num1,num2,num3';

<4>.组合类 [a-z1-4\n] 标识匹配所有a~z,1~4 以及一个换行符
例如:

var sTomatch = "num1,numanuma,numb,num4,num5,num\nnum3numt,num9";
var reAt = /num[1-3a-m\n]/g;
var arrMatches = sTomatch.match(reAt);
alert(arrMatches); //outputs 'num1,numa,numa,numb,num?,num3';

<5>.预定义类 由于经常用到一些模式,正则表达式预定义了一些常用匹配:如下:

. [^\n\r] 除了换行和回车之外的任意字符
\d [0-9] 数字
\D [^0-9] 非数字
\s [ \r\n\x0B\f\r] 空白字符
\S [^\r\n\x0B\f\r] 非空白字符
\w [a-zA-Z_0-9] 单词字符(所有的字母、数字、下划线)
\W [^a-zA-Z_0-9] 非单词字符


<6>.简单量词,如下表:

^ 匹配输入字符串的起始端,如果是多行匹配,即表达式的附加参数中含有m,则也在一个换行符后匹配

。
$ 匹配输入字符创的尾端,如果是多行匹配,即表达式的附加参数中含有m,则也在一个换行符前匹配。
? 出现零次或一次
* 出现零次或多次(任意次)
+ 出现一次或多次(至少出现一次)
{n} 一定出现n次
{n,m} 至少出现n次,但不超过m次
{n,} 至少出现n次

例子:/^B/匹配 “Bab Bc ”中的第一个B
例子2:/^B/gm匹配
 “Badd B
  cdaf
  B dsfB”
中的第一行第一个B,第三行中的第一个B

<7>.捕获性分组 (x):表示匹配x(并非特指字符x或者特指一个字符,x表示一个字符串),而且匹配会被记住,在语法

中这种()被称为“capturing parentheses ”,即捕捉用的小括号。
  匹配会被记住,是因为在表达式提供的函数中,有些函数返回一个数组,该数组会保存所匹配的所有

字符串,例如exec()函数。
  另外还要注意()中的x被记住的前提是匹配x。
  例子1:
  
var regx=/a(b)c/;
  var rs=regx.exec("abcddd");

  从上面可以看出,/a(b)c/匹配“abcddd”中的“abc”,因为()的原因,b也会记录下来,因此rs返回的数字内容为: 数组:[abc,b]
  例子2:
  var regx=/a(b)c/;
  var rs=regx.exec(“acbcddd”);
  rs返回null,因为/a(b)c/不匹配“acbcddd”,所以()中的b不会被记录下来(尽管字符串中含有b)
<8>.非捕获性分组 (?:x):匹配x,但不会记住x,这种格式中的()被称为“non-capturing parentheses ”,即非捕捉用的小括号。
  例子:
  
var regx=/a(?:b)c/;
  var rs=regx.exec("abcddd");

  从上面可以看出,/a(?:b)c/匹配“abcddd”中的“abc”,因为(?:)的原因,b不会记录下来,因此rs返回的数字内容为: {abc}
<9>X(?=y):匹配x,仅当后面紧跟着y时。如果符合匹配,则只有x会被记住,y不会被记住。
  例子:
  
var regx=/user(?=name)/;
  var rs=regx.exec("The username is Mary");

  结果:匹配成功,而且rs的值为{user}

//正向前瞻
re = /([a-z]+(?=\d))/i;
//我们要匹配后面跟一个数字的单词,然后将单词返回,而不要返回数字
str = "abc every1 abc";
alert(re.test(str));//true
alert(RegExp.$1);//every
alert(re.lastIndex);//使用前瞻的好处是,前瞻的内容(?=\d)并不会当成一次匹配,下次匹配仍从它开始

<10>.X(?!y):匹配x,仅当后面不紧跟着y时。如果符合匹配,则只有x会被记住,y不会被记住。
  例子:
  
var regx=/user(?!name)/;
  var rs=regx.exec("The user name is Mary");

  结果:匹配成功,而且rs的值为{user}
  例子2:
  
var regx=/\d+(?!\.)/;
  var rs=regx.exec("54.235");

  结果:匹配成功,rs的值为{5},不匹配54是因为54后面跟着“.”号,当然235也匹配,但是由于exec方法的行为,235不会被返回

//负向前瞻(?!)
re = /([a-z](?!\d))/;i
//将匹配后面不包含数字的字母,并且不会返回(?!\d)中的内容
str = "abc1 one";
alert(re.test(str));
alert(RegExp.$1);//one

<11>.x|y:匹配x或y。注意如果x和y都匹配上了,那么只记住x。
  例子:
  
var regx=/beijing|shanghai/;
  var rs=regx.exec("I love beijing and shanghai");

  结果:匹配成功,rs的值为{beijing},虽然shanghai也匹配,但不会被记住。
[b]四、表达式相关属性[/b]
1)表达式相关属性,是指和表达式相关的属性,如下面的形式:
  var regx=/myexpr/;
  var rs=regx.exec(str);
  其中,和表达式自身regx相关的属性有两个,和表达式匹配结果rs相关的属性有三个,下面将逐一介

绍。

2)和表达式自身相关的两个属性:

1> lastIndex,返回开始下一个匹配的位置,注意必须是全局匹配(表达式中带有g参数)时,lastIndex

才会有不断返回下一个匹配值,否则该值为总是返回第一个下一个匹配位置,例如:

  var regx=/user\d/;
  var rs=regx.exec(“sdsfuser1dfsfuser2”);
  var lastIndex1=regx.lastIndex;
  rs=regx.exec(“sdsfuser1dfsfuser2”);
  var lastIndex2=regx.lastIndex;
  rs=regx.exec(“sdsfuser1dfsfuser2”);
  var lastIndex3=regx.lastIndex;
  
上面lastIndex1为9,第二个lastIndex2也为9,第三个也是9;如果regx=/user\d/g,则第一个为9,第二个为18,第三个为0。

2> source,返回表达式字符串自身。例如:
  
var regx=/user\d/;
  var rs=regx.exec("sdsfuser1dfsfuser2");
  var source=regx.source;
  source的值为user\d

3)和匹配结果相关的三个属性:
1> index,返回当前匹配的位置。例如:
  var regx=/user\d/;
  var rs=regx.exec(“sdsfuser1dfsfuser2”);
  var index1=rs.index;
  rs=regx.exec(“sdsfuser1dfsfuser2”);
  var index2=rs.index;
  rs=regx.exec(“sdsfuser1dfsfuser2”);
  var index3=rs.index;
  index1为4,index2为4,index3为4,如果表达式加入参数g,则index1为4,index2为13,index3会

报错(index为空或不是对象)。

2> input,用于匹配的字符串。例如:
  
var regx=/user\d/;
  var rs=regx.exec("sdsfuser1dfsfuser2");
  var input=rs.input;
  input的值为sdsfuser1dfsfuser2。

3> [0],返回匹配结果中的第一个匹配值,对于match而言可能返回一个多值的数字,则除了[0]外,还可

以取[1]、[2]等等。例如:
  var regx=/user\d/;
  var rs=regx.exec("sdsfuser1dfsfuser2");
  var value1=rs[0]; //user1

3)leftContext 返回被查找的字符串中从字符串开始位置到最后匹配之前的位置之间的字符;
rigthContext 返回被搜索的字符串中从最后一个匹配位置开始到字符串结尾之间的字符 。

re = /[A-Z]/g;
str = "123ABC456";
re.test(str);
alert(RegExp.leftContext);//123
alert(RegExp.rightContext);//BC456
re.test(str);
alert(RegExp["$`"]);//123A
alert(RegExp["$'"]);//C456

4)lastParen 最后匹配的分组

re = /[a-z](\d+)/gi;
str = "Class1 Class2 Class3";
re.test(str);
alert(RegExp.lastParen);//1
re.test(str);
alert(RegExp["$+"]);//2

5)lastMatch 最后匹配的字符

re = /[a-z]/g;
str = "hi";
re.test(str);
alert(RegExp.lastMatch);//h
re.test(str);
alert(RegExp["$&"]);//i ,$&是lastMatch的短名字

6)反向引用

var re = /(A?(B?(C?)))/;
/*上面的正则表达式将依次产生三个分组
(A?(B?(C?))) 最外面的
(B?(C?))
(C?)*/
str = "ABC";
re.test(str);//反向引用被存储在RegExp对象的静态属性$1—$9中
alert(RegExp.$1+"\n"+RegExp.$2+"\n"+RegExp.$3);
//反向引用也可以在正则表达式中使用\1 ,\2...这类的形式使用
re = /\d+(\D)\d+\1\d+/;
str = "2008-1-1";
alert(re.test(str));//true
str = "2008-4_3";
alert(re.test(str));//false


re = /(\d+)\s(\d+)/;
str = "1234 5678";
alert(str.replace(re,"$2 $1"));//在这个里面$1表示第一个分组1234,$2则表示5678

[b]五、例子[/b]

/*
* 描述:有一表单,其中有一个“用户名”input域
* 要求:汉字,而且不能少于2个汉字,不能多于4个汉字。
*/
function checkForm(obj){   
var username=obj.username.value;   
var regx=/^[\u4e00-\u9fa5]{2,4}$/g   
if(!regx.test(username)){   
alert(“Invalid username!”);
   return false;   
}   
return true;
}

/*
* 描述:给定一个含有html标记的字符串,要求将其中的html标记去掉。
*/
function toPlainText(htmlStr){   
var regx=/<[^>]*>|<\/[^>]*>/gm;   
var str=htmlStr.replace(regx,"");   
return str;
}

/*
*去掉前后空格
*/
function trim(str){
return str.replace(/^(\s+)|(\s+)$/g, "");
}

/**
* 取传给html页面的参数
*/
var href=String(window.document.location.href);

function getArgsFromHref(href, str){
var rs = new RegExp("(^|)"+str+"=([^\&]*)(\&|$)","gi").exec(href);

if(rs){
return rs[2];
}

return "";
}

/**
*从文件路中取出“目录”、“文件名”、“扩展名”
*@param path
* 文件路径
*@param type
1:路径,2:文件名,3:扩展名
**/
function parseFilePath(path,type){
var regExp = /(.+\/)(\w+)[\.\w+]*\.(\w+)$/g;
if(!regExp.test(path)) return "";

var ret = "";
switch(type){
case '2':
ret = path.replace(reg, "$2");
break;
case '3':
ret = path.replace(reg, "$3");
break;
default: ret = path.replace(reg, "$1");
}
return ret;
}

/*
** 取指定字符串的长度
*/
function strLengthB(str){
var len = 0;
for(var i = 0; i < str.length; i++) {
if(/[\u4E00-\u9FA5\uF900-\uFA2D\uFF00-\uFFEF\u3000-\u303F]/.test(str.charAt(i)))
len = len + 2;
else
len = len + 1;
}

return len;
}

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

相关推荐

【Hyper-V】虚拟机网络配置全解析:从端口映射到固定IP实战

本文全面解析Hyper-V虚拟机网络配置,从理解虚拟交换机三种模式(外部、内部、专用)的底层逻辑入手,指导用户创建稳定的内部/NAT网络,并详细演示如何在Linux与Windows虚拟机中配置固定IP。文章进一步深入讲解端口映射原理与netsh命令实战,以及双网卡配置和PowerShell自动化脚本等高级技巧,帮助用户彻底解决虚拟机网络“失联”问题,实现灵活可控的网络环境。

weixin_29290947的博客 269

正则匹配new RegExp 与 / /区别

创建一个正则对象有两种方法: new RegExp(“正则匹配的字符串”) var regObj = / /g; 当在使用绕匹配的正则字符串中有 / 要匹配这个斜杠的时候,注意,在使用 new RegExp("") 字符串中可以直接写 / 而不需要进行 \/ 进行转义。但是在使用 var regObj = / /g; 这种方式的时候,必须对里面的 / 进行 \/ 转义 var urlReg = new RegExp("([hH][tT]{2}[pP]://|[hH][tT]{2}[pP][

qq_44441669的博客 2851

AHRS互补滤波(Mahony)算法及开源代码

AHRS(Attitude and heading ref AHRS(Attitude and heading reference system,也就是航姿参考系统。在互补滤波算法中传感器主要采用了IMU(陀螺仪、加速度计)和磁力计。 AHRS的基本思想是,在载体没有平移运动的情况下,通过加速度感知重力分量,可以计算出载体的俯仰(Pitch)和横滚(Pitch);磁力计可以感知磁北方向,因此可以计算载体的磁北航向;而陀螺仪测量输出载体的旋转角速度,通过积分可以计算得到横滚、俯仰、航向增量,但由于陀螺输出值含

weixin_42918498的博客 3万+

正则匹配log行

由于接手代码中有大量console.log 在发布时未去除,而且部分被注释,实在是忍不了,于是写了个正则匹配所有log 代码中: /^\\n.*console.log{1}.*\\n$/gi IDE中: \n.*console.log{1}.*\n 转载于:https://www.cnblogs.com/ericwangz/p/8968519.html...

weixin_33953249的博客 710

别再只调包了!深入理解机器学习虚拟筛选中的分子指纹(ECFP/Morgan)

本文深入探讨了ECFP/Morgan分子指纹在机器学习虚拟筛选中的应用与优化策略。通过解析半径参数与比特长度的化学意义,揭示了如何通过参数调优提升模型性能20%以上,特别适用于药物发现领域的高通量筛选。文章还提供了工程实践中的参数优化策略和多指纹融合技术,为开发者提供从理论到实践的全面指导。

weixin_33704234的博客 829

哈工大2021年秋季学期数据结构期末试题

因为考完试没有收演草纸,所以题中数据与考试差距不大。选项顺序可能略有差异;选择第5题希尔排序的序列数据是后编的;简答第3题B-树的插入序列顺序可能不同,但是考察的点是一样的。其他题的数据基本可以保证和原题一样。 一、选择题 111.以下代码的时间复杂度是 for(int k=1;k<=n;k++) for(int j=1;j<=n;j++) count++; A.O(n)       B.O(nlogn) &

Castria的博客 4272

【JS】JavaScript正则表达式基础

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

小绵杨 2208

Linux安装部署PostgreSQL详细步骤

Linux安装部署PostgreSQL详细步骤

2301_77356579的博客 9322

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

详解JavaScript中正则表达式

ztK63LrD的博客 2220

PID参数自整定实战解析:从继电反馈到智能调节的完整实现

本文深入解析PID参数自整定的实战应用,从继电反馈原理到智能调节算法的完整实现。通过详细讲解振荡波形特征提取、参数计算的工程化改进及工业场景调试技巧,帮助工程师快速掌握PID自整定技术,提升控制系统性能。特别针对嵌入式系统优化和噪声环境下的稳定策略提供了实用解决方案。

weixin_28731223的博客 461

【各种轮子2】基于Icepak的PCB散热仿真比较

随着电子产品的集成度越来越高,PCB板的尺寸越来越小,板级芯片散热的问题越来越成为电子工程师的一个重要挑战。对于板级芯片散热,主要依靠工程师对PCB自身的设计进行优化,同时要兼顾系统的尺寸和成本。本文分别从芯片角度和PCB角度进行建模,芯片模型选用QFN封装,PCB模型采用走线导入模型,探讨了芯片结构,PCB铜厚,PCB叠层厚度对芯片散热的影响。

3669

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

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

Dontla的博客 1758

嵌入式软件工程师面试题目整理(一)

文章目录嵌入式软件工程师面试题目整理(一)Arm有多少32位寄存器?Arm2440和6410有什么区别CPU,MPU,MCU,SOC,SOPC联系与差别上拉&下拉&高阻态串口协议讲一讲RS232和RS485通讯接口有什么区别IIC时序图画一下,IIC有哪些状态,给一个字节,将它发送出去。IIC有什么注意事项?有没有用I/O模拟IIC,如果有需要注意什么?为什么2440的内存起始地址是3后面7个0呢?为什么6410的内存起始地址是5后面7个0呢?内存管理有什么看法?(MMU)锁有哪些?有什么注

嵌入式与Linux那些事的博客 7883

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

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

xh601的博客 5308

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

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

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

小绵杨 1705

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

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

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

on1y_rL的博客 633

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

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

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

感谢阅读 3324

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

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

weixin_39651488的博客 1万+

{JS}JavaScript使用正则表达式

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

283

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

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

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

YopenLang的博客 3808

【JS】JavaScript正则表达式

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

Making Life Better. Making Others Better. 1367
上一篇: jexcel使用
下一篇: oracle之spfile与pfile
log_cd
博客等级 码龄19年 7粉丝 109原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值