javascript之正则表达式


?号在正则中的另一种应用
我们之前讲过,在{1,4}或者{1,}或者a*或者a+ 或者a?中,正则会优先考虑使用最大的值 去匹配,如果匹配不上,再往前走。但我 们或许要问,能不能反过来呢?答案是: 能。如何实现呢?这就需要借助?号了。
如果要实现上面的效果,上述写法就要写成 这样了:{1,4}? {1,}? *? +? ??
从匹配字符个数讲起
在正则中,一个最基本的应用就是匹配指定 个数或者不指定个数的相同字符。当然, 我们可以像第一个例子那样如下这样写: var reg=/a/; //匹配一个字符a var reg=/aa/; //匹配两个连续的字符a .......
那还有没有其他方式呢?答案是:当然有, 而且更好....
+号在正则中的应用
+表示一次或者多次,等同于:{1,} 比如:a+,也可以写成:a{1,} var reg="a+"; //或者a{1,} var str="waraa"; getResult(reg,str); //打印输出的将是等同于{0,1} 比如:a?,等同于:a{0,1} var reg=/a?/; //或者写成:a{0,1} var str="war"; getResult(reg,str); //打印输出空串""
反向引用
先来看一个不是反向引用的例子: var reg=/(\w)(\w)/; var str="abcd"; getResult(reg,str); //返回ab 释义:第一个括号里面匹配上a,第二个括号 里面匹配上b
再来看这个例子: var reg=/(\w)\1/; var str="abcd"; getResult(reg,str); //返回null
$号在正则中的应用
$号表示只匹配字符串结尾的字符。 比如:a$ ,表示指定的字符串是以字母a结 尾,则返回a,否则,返回null。
var reg=/a$/; var str="war"; getResult(reg,str); //返回null。
再来个例子 var reg=/a{1,4}$/; var str="waaa"; getResult(reg,str); //返回aaa -------------------------------------var reg=/a+$/; var str="waaa"; getResult(reg,str); //返回aaa 注意:$号这里如果使用?表示优先匹配少的,将不起作用。
$号的适用场合: 我们通常在验证一个值的要求必须以什么结 尾,如果使用正则来验证,就需要使用到$ 号。
.点号在正则中的应用
.点号会匹配字符串中除了\n换行符以外的所 有字符。 var reg=/./; var str="war"; getResult(reg,str); //返回字符w。
再扩展一下: var reg=/.+/; var str="war"; getResult(reg,str); //返回war -----------------------------------------------var reg=/.+/; var str="wa\nr"; getResult(reg,str); //返回wa
javascript中创建一个正则有两种方式: 一: var reg=/pattern/;
二: var reg=new RegExp("pattern");
接下来的测试使用exec方法
exec方法将把匹配上的结果返回回来。
语法如下: reg.exec(str);
简单的例子
var reg=/he/; var str="hexiancheng"; var result=reg.exec(str); alert(result); 输出结果:he。如果没有匹配上,返回null 适用场合:判断指定的字符串是否包含指定的字符序列。 注意事项:返回的是首次匹配上的结果,如果有多个he,返 回的是第一个he,并不会返回多个he。这一原则适用于接 下来所有的测试(全局匹配除外)
\B表示非边界。 看例子: var reg=/\Ba/; var str="dak"; getResult(reg,str); //返回a 中间的字符a
注:如果字符a在字符串两边的话,则返回null
数字和非数字
\d 表示数字 等同于[0-9] \D 表示非数字 等同于[^0-9]
var reg=/\d/; var str="a8"; getResult(reg,str); //返回第一个数字8 -----------------------------------------------------var reg=/\D/; var str="a8"; getResult(reg,str); //返回第一个非数字a
var reg=/a{1}/; var reg=/a{2}/;
//匹配一个字符a //匹配两个连续的字符a
var reg=/a{1,4}/; //匹配1个或者2个、3个、4个字符a,默认情况下, //优先匹配4个,如果没匹配上,就匹配3个,以 //此类推.
var reg=/a{1,}/; //匹配1个及1个以上的连续的字符a。同样,优先匹配最多的
^号在正则中的应用
^号表示只匹配字符串的开头。 比如:^a,表示如果指定字符串是以字母a开 头,则返回a,否则返回null。反之,如果 没有^号,则只要指定的字符串包含a,则 会返回a,只有在指定字符串不包含字母a 的时候才返回null。
^号的应用: var reg=/^a/; var str="war"; getResult(reg,str); //返回null。因为指定的字符串不是以a开头。
var reg=/^(a|c)/; var str="acr"; getResult(reg,str); //返回字母a --------------------------------------------var reg=/^(a|c)+/; var str="acr"; getResult(reg,str); //返回ac 解释:之所以返回ac,是因为这个正则应该这样释 义:开头的连续的字母当中只要是a或者c则满足 匹配要求。
javascript正则表达式
正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些 特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个 “规则字符串”用来表达对字符串的一种过滤逻辑。 给定一个正则表达式和另一个字符串,我们可以达到如下的目的: 1. 给定的字符串是否符合正则表达式的过滤逻辑(称作“匹配”); 2. 可以通过正则表达式,从字符串中获取我们想要的特定部分。 正则表达式的特点是: 1. 灵活性、逻辑性和功能性非常的强; 2. 可以迅速地用极简单的方式达到字符串的复杂控制。 3. 对于刚接触的人来说,比较晦涩难懂。
适用场合:判断指定的字符串是否以指定的 字符序列开头。
^号的例子: var reg=/^a+/; var str="aawar"; getResult(reg,str); -------------------------------------var reg=/^a+?/; var str="aawar"; getResult(reg,str);
上述匹配规则的适用场合: 指定的字符串必须包含连续的相同的或者不 同的字母或者数字。在表单验证中验证名 称、密码、邮箱、电话等经常使用到。
*号在正则中的应用
*号表示0次或者多次,等同于{0,}. 比如: a*,也可以写成a{0,}
var reg=/a*/; //或者var reg=/a{0,}/; var str="war"; getResult(reg,str); //打印输出的是""空串
正则中"或"也是一个:| 比如:a|c 表示a或者c ^a|c 表示以字母a或者包含字母c ^a|c+ 表示以字母a开头,或者包含连 续的字母c ^(a|c)+ 表示以连续的字母a 或者连续的字母c开头 注意:或者表示的是只要其中一个成立即可
请看下面的几个例子: var reg=/^a|c/; var str="ary"; getResult(reg,str); //返回a ---------------------------------------------------var reg=/^a|c/; var str="acry"; getResult(reg,str); //返回a -----------------------------------------------------var reg=/^a|c/; var str="fccr"; getResult(reg,str); //返回c
另外,我们发现匹配的结果后面多了一部分, 就是用,号分割出来的那一部分,那是圆括 号里面匹配的结果。在这里,我们把在正 则表达式内括号里写的内容会称之为子正 则表达式,所匹配的结果也会被记录下来 供后面使用。
字符集合
[abc]就是一个字符集合,表示a或者b或者c中 的任意一个字符。 比如:/^[abc]/,表示开头部分是a或者b或者c, 都符合正则指定的规则,都会返回相应的 结果。
比较下面两个案例的输出结果: var reg=/a{1,4}/; var str="aaaak"; getResult(reg,str); ----------------------------------------------var reg=/a{1,4}?/; var str="aaaak"; getResult(reg,str);
合集下载

JS正则表达式大全

JS正则表达式大全

JS正则表达式大全JS正则表达式大全【1】正则表达式中的特殊字符【留着以后查用】字符含意\ 做为转意,即通常在"\"后面的字符不按原来意义解释,如/b/匹配字符"b",当b前面加了反斜杆后/\b/,转意为匹配一个单词的边界。

-或-对正则表达式功能字符的还原,如"*"匹配它前面元字符0次或多次,/a*/将匹配a,aa,aaa,加了"\"后,/a\*/将只匹配"a*"。

^ 匹配一个输入或一行的开头,/^a/匹配"an A",而不匹配"An a"$ 匹配一个输入或一行的结尾,/a$/匹配"An a",而不匹配"an A"* 匹配前面元字符0次或多次,/ba*/将匹配b,ba,baa,baaa+ 匹配前面元字符1次或多次,/ba*/将匹配ba,baa,baaa? 匹配前面元字符0次或1次,/ba*/将匹配b,ba(x) 匹配x保存x在名为$1...$9的变量中x|y 匹配x或y{n} 精确匹配n次{n,} 匹配n次以上{n,m} 匹配n-m次[xyz] 字符集(character set),匹配这个集合中的任一一个字符(或元字符)[^xyz] 不匹配这个集合中的任何一个字符[\b] 匹配一个退格符\b 匹配一个单词的边界\B 匹配一个单词的非边界\cX 这儿,X是一个控制符,/\cM/匹配Ctrl-M\d 匹配一个字数字符,/\d/ = /[0-9]/\D 匹配一个非字数字符,/\D/ = /[^0-9]/\n 匹配一个换行符\r 匹配一个回车符\s 匹配一个空白字符,包括\n,\r,\f,\t,\v等\S 匹配一个非空白字符,等于/[^\n\f\r\t\v]/\t 匹配一个制表符\v 匹配一个重直制表符\w 匹配一个可以组成单词的字符(alphanumeric,这是我的意译,含数字),包括下划线,如[\w]匹配"$5.98"中的5,等于[a-zA-Z0-9]\W 匹配一个不可以组成单词的字符,如[\W]匹配"$5.98"中的$,等于[^a-zA-Z0-9]。

js正则表达式

js正则表达式

JS的正则表达式//校验是否全由数字组成[code] function isDigit(s) { var patrn=/^[0-9]{1,20}$/; if (!patrn.exec(s)) return false return true } [/code]//校验登录名:只能输入5-20个以字母开头、可带数字、“_”、“.”的字串[code] function isRegisterUserName(s) { varpatrn=/^[a-zA-Z]{1}([a-zA-Z0-9]|[._]){4,19}$/; if (!patrn.exec(s)) return false return true } [/code]//校验用户姓名:只能输入1-30个以字母开头的字串[code] function isTrueName(s) { var patrn=/^[a-zA-Z]{1,30}$/; if (!patrn.exec(s)) return false return true } }} //校验密码:只能输入6-20个字母、数字、下划线[code] function isPasswd(s) { var patrn=/^(\w){6,20}$/; if (!patrn.exec(s)) return false return true } [/code]//校验普通电话、传真号码:可以“+”开头,除数字外,可含有“-”[code] function isTel(s) { //var patrn=/^[+]{0,1}(\d){1,3}[ ]?([-]?(\d){1,12})+$/; var patrn=/^[+]{0,1}(\d){1,3}[ ]?([-]?((\d)|[ ]){1,12})+$/; if (!patrn.exec(s)) return false return true } [/code]//校验手机号码:必须以数字开头,除数字外,可含有“-”[code] function isMobil(s) { var patrn=/^[+]{0,1}(\d){1,3}[ ]?([-]?((\d)|[ ]){1,12})+$/; if (!patrn.exec(s)) return false return true } [/code]//校验邮政编码[code] function isPostalCode(s) { //var patrn=/^[a-zA-Z0-9]{3,12}$/; varpatrn=/^[a-zA-Z0-9 ]{3,12}$/; if (!patrn.exec(s)) return false return true } [/code]//校验搜索关键字[code] function isSearch(s) { varpatrn=/^[^`~!@#$%^&*()+=|\\\][\]\{\}:;'\,.<>/?]{1}[^`~!@$%^&()+=|\\\][\]\{\}:;'\,.<>?]{0,19}$/; if (!patrn.exec(s)) return false return true } function isIP(s) //by zergling { var patrn=/^[0-9.]{1,20}$/; if (!patrn.exec(s)) return false return true } [/code]正则表达式[code] "^\\d+$"//非负整数(正整数+ 0)"^[0-9]*[1-9][0-9]*$"//正整数"^((-\\d+)|(0+))$"//非正整数(负整数+ 0)"^-[0-9]*[1-9][0-9]*$"//负整数"^-?\\d+$"//整数"^\\d+(\\.\\d+)?$"//非负浮点数(正浮点数+ 0)"^(([0-9]+\\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\\.[0-9]+)|([0-9]*[1-9][0-9]*))$"//正浮点数"^((-\\d+(\\.\\d+)?)|(0+(\\.0+)?))$"//非正浮点数(负浮点数+ 0)"^(-(([0-9]+\\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\\.[0-9]+)|([0-9]*[1-9][0-9]*)))$" //负浮点数"^(-?\\d+)(\\.\\d+)?$"//浮点数"^[A-Za-z]+$"//由26个英文字母组成的字符串"^[A-Z]+$"//由26个英文字母的大写组成的字符串"^[a-z]+$"//由26个英文字母的小写组成的字符串"^[A-Za-z0-9]+$"//由数字和26个英文字母组成的字符串"^\\w+$"//由数字、26个英文字母或者下划线组成的字符串"^[\\w-]+(\\.[\\w-]+)*@[\\w-]+(\\.[\\w-]+)+$"//email地址"^[a-zA-z]+://(\\w+(-\\w+)*)(\\.(\\w+(-\\w+)*))*(\\?\\S*)?$"//url"^[A-Za-z0-9_]*$" [/code]正则表达式使用详解简介简单的说,正则表达式是一种可以用于模式匹配和替换的强有力的工具。

js 验证 常用正则

js 验证 常用正则

js 验证常用正则JavaScript是一个非常强大的脚本语言,它是web开发中最广泛使用的语言之一。

它可以用于开发交互式网页以及许多其他应用程序。

JavaScript中的正则表达式是非常重要的,它可以用来验证用户输入的数据,例如电子邮件、电话号码、日期、时间等等。

在这篇文章中,我们将探讨一些常用的JavaScript正则表达式。

1. 验证电子邮件首先,我们来讨论一下如何验证一个电子邮件地址。

在JavaScript中,我们可以使用正则表达式来实现这个功能。

首先,我们需要一个包含电子邮件地址的字符串:```javascriptvaremail="*******************";```然后,我们需要一个正则表达式来验证电子邮件地址。

下面是一个简单的正则表达式,可以匹配大部分电子邮件地址:```javascriptvar emailPattern = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;```现在,我们可以使用test()方法,将我们的电子邮件地址和正则表达式传递给它来验证电子邮件地址:```javascriptif (emailPattern.test(email)) {console.log("Valid email address");} else {console.log("Invalid email address");}```2. 验证电话号码下一个正则表达式,我们将探讨如何验证电话号码。

在JavaScript中,我们可以使用正则表达式来验证电话号码。

首先,我们需要一个包含电话号码的字符串:```javascriptvar phoneNumber = "123-456-7890";```然后,我们需要一个正则表达式来验证电话号码。

下面是一个简单的正则表达式,可以匹配大部分电话号码:```javascriptvar phonePattern = /^\d{3}-\d{3}-\d{4}$/;```现在,我们可以使用test()方法,将我们的电话号码和正则表达式传递给它来验证电话号码:```javascriptif (phonePattern.test(phoneNumber)) {console.log("Valid phone number");} else {console.log("Invalid phone number");}```3. 验证日期最后,我们将探讨如何验证日期。

js常用正则表达式语法大全

js常用正则表达式语法大全

js常用正则表达式语法大全正则表达式是一种强大而灵活的文本匹配工具,在JavaScript中广泛应用于字符串操作、表单验证、搜索和替换等场景。

掌握正则表达式的语法对于JavaScript开发者来说是至关重要的。

本文将介绍JavaScript中常用的正则表达式语法。

1. 基本语法1.1 字面量表示法var regex =/pattern/;1.2 构造函数表示法var regex =new RegExp("pattern");2. 元字符元字符是正则表达式中具有特殊含义的字符。

2.1 普通字符普通字符匹配其字面值,例如:var regex =/abc/;2.2 元字符•.:匹配任意字符(除了换行符)。

•^:匹配字符串的开始。

•$:匹配字符串的结束。

•*:匹配前一个字符0次或多次。

•+:匹配前一个字符1次或多次。

•?:匹配前一个字符0次或1次。

•|:或,匹配两个任一之一。

•( ):分组,将括号内的内容视为一个整体。

3. 字符类字符类用于匹配一个字符的集合。

•[abc]:匹配字符a、b或c中的任意一个。

•[^abc]:匹配除了a、b、c之外的任意字符。

•[a-z]:匹配任意小写字母。

•[A-Z]:匹配任意大写字母。

•[0-9]:匹配任意数字。

4. 预定义字符类预定义字符类是一些常用的字符类的缩写。

•\d:匹配任意数字,相当于[0-9]。

•\D:匹配任意非数字字符,相当于[^0-9]。

•\w:匹配任意单词字符(字母、数字、下划线),相当于[a-zA-Z0-9_]。

•\W:匹配任意非单词字符,相当于[^a-zA-Z0-9_]。

•\s:匹配任意空白字符(空格、制表符、换行符等)。

•\S:匹配任意非空白字符。

5. 量词量词用于指定匹配的次数。

•*:匹配前一个字符0次或多次。

•+:匹配前一个字符1次或多次。

•?:匹配前一个字符0次或1次。

•{n}:匹配前一个字符n次。

•{n,}:匹配前一个字符至少n次。

js 正则表达式 四则运算

js 正则表达式 四则运算

js 正则表达式四则运算【实用版】目录1.JavaScript 正则表达式的概念和用途2.JavaScript 正则表达式的基本语法3.JavaScript 正则表达式的四则运算4.实例:使用 JavaScript 正则表达式进行四则运算正文一、JavaScript 正则表达式的概念和用途正则表达式(Regular Expression),简称 regex,是一种强大的文本处理工具,主要用于匹配和查找文本字符串中的模式。

在 JavaScript 中,正则表达式被广泛应用于验证表单、过滤数据、提取信息等场景。

二、JavaScript 正则表达式的基本语法1.字符类:用于匹配某一类字符- [abc]:匹配 a、b 或 c- [^abc]:匹配除方括号内字符以外的任意字符- [a-zA-Z]:匹配所有英文字母- d:匹配数字,等价于 [0-9]- D:匹配非数字,等价于 [^0-9]- s:匹配空白字符(空格、制表符、换行符等)- S:匹配非空白字符- w:匹配单词字符(字母、数字、下划线),等价于 [a-zA-Z0-9_] - W:匹配非单词字符2.量词:用于指定字符或字符类出现的次数-?:出现 0 次或 1 次- *:出现 0 次或多次- +:出现 1 次或多次- {n}:出现 n 次- {n,}:出现 n 次或多次- {n,m}:出现 n 到 m 次3.边界匹配符:用于指定匹配的位置- ^:匹配字符串的开头- $:匹配字符串的结尾- b:匹配单词边界- B:匹配非单词边界4.分组和捕获:用于将正则表达式的一部分组合在一起,以便进行特定操作- (pattern):匹配 pattern 并捕获结果,可以通过引用组号获取- (?:pattern):匹配 pattern 但不捕获结果5.修饰符:用于修改正则表达式的匹配方式- i:不区分大小写- g:全局匹配(默认为局部匹配)- m:多行匹配(默认为单行匹配)三、JavaScript 正则表达式的四则运算在 JavaScript 中,正则表达式的四则运算与数学中的加减乘除类似,可以进行字符串的拼接和替换。

js 正则的方法

js 正则的方法

js 正则的方法JavaScript 中的正则表达式(RegExp)是一种强大的工具,用于在字符串中执行复杂的搜索和替换操作。

以下是一些常用的JavaScript 正则表达式方法:1.test(): 这个方法检查一个字符串是否匹配某个模式。

它会返回一个布尔值,如果字符串中存在匹配的文本,则返回true,否则返回false。

javascriptlet regex = /hello/;console.log(regex.test('hello world')); // 输出: trueconsole.log(regex.test('goodbye world')); // 输出: false2.exec(): 这个方法在一个字符串中执行正则表达式搜索,并返回一个数组。

如果没有找到匹配的文本,则返回null。

javascriptlet regex = /hello/;let result = regex.exec('hello world');console.log(result); // 输出: ["hello", index: 0, input: "helloworld", groups: undefined]3.match(): 这个方法在一个字符串中执行正则表达式搜索,并返回一个数组。

如果没有找到匹配的文本,则返回null。

与exec()方法不同,match()方法只能用于全局搜索模式(g 标志)。

javascriptlet regex = /hello/g;let result = 'hello world hello everyone'.match(regex);console.log(result); // 输出: ["hello", "hello"]4.replace(): 这个方法在一个字符串中查找与正则表达式模式匹配的文本,并用替换文本替换它。

js常用的正则表达式

js常用的正则表达式前言JavaScript中的正则表达式被广泛用于字符串的匹配和替换,可以让代码更加优雅和高效。

本文将介绍JS中常用的正则表达式及其用法,希望能对初学者有所帮助。

一、基本语法正则表达式由字面值和特殊字符两种类型组成。

字母、数字、空格等都表示字面值,而特殊符号则表示特定含义,例如/d代表数字,/s代表空格等。

正则表达式用斜杠“/”将其包裹起来。

二、常用正则表达式1. 匹配IP地址/^(\d{1,3}\.){3}\d{1,3}$/使用说明: \d表明是数字,{1,3}表明可以是一个到三个数字,\.表示点,^表示字符串开始,$表示字符串结束。

2. 匹配邮箱/^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/使用说明: \w表示字母数字下划线,[-+.]表示这些特殊字符中的一个,*表示出现零次或多次。

3. 匹配电话号码/^[1][3,4,5,7,8][0-9]{9}$/使用说明: [1]表示以1开头,[3,4,5,7,8]表示第二个数字只能是这些中的一个,[0-9]{9}表示后面必须跟九个数字。

4. 匹配URL地址/^(http|https):\/\/[a-zA-Z0-9]+[\.a-zA-Z0-9_-]*[a-zA-Z0-9]+(\/\S*)?$/使用说明: (http|https)表示http或https,\/\/表示两个斜杠,[a-zA-Z0-9]表示字母数字任意一个,+表示一个或多个,[\.a-zA-Z0-9_-]*表示出现零次或多次,\/表示斜杠,\S表示任意一个非空白字符。

5. 匹配HTML标签/<\/?[^>]+>/gi使用说明: \?表示出现零次或一次,[^>]表示不是大于号的字符,+表示一个或多个,/i使匹配忽略大小写,/g表示全局匹配。

6. 匹配中文字符/[\u4e00-\u9fa5]/使用说明: [\u4e00-\u9fa5]表示从\u4e00到\u9fa5这个区间的所有字符。

js金额正则表达式

js金额正则表达式
JavaScript是一种常用的编程语言,它可以用来验证和处理金额的输入。

金额是一种非常重要的数据类型,因此在网站或应用程序中,通常需要使用正则表达式来验证和限制金额的输入。

下面是一些常用的js金额正则表达式。

1. 只允许输入数字和小数点的正则表达式:^[0-9.]+$
这个正则表达式只允许用户输入数字和小数点。

如果用户输入了其他字符,那么就会提示输入不合法。

2. 限制只能输入两位小数的正则表达式:
^[0-9]+(.[0-9]{1,2})?$
这个正则表达式允许用户输入任意数字,并且限制了小数点后只能输入两位小数。

如果用户输入了超过两位小数的数字,那么就会提示输入不合法。

3. 限制输入金额的范围的正则表达式:
^(0|[1-9]d{0,2}(,d{3})*)(.d{1,2})?$
这个正则表达式将输入的金额限制在0到999,999.99之间。

如果用户输入的金额超过了这个范围,那么就会提示输入不合法。

除了上述的正则表达式之外,还有很多其他的js金额正则表达式,可以根据实际需求选择使用。

需要注意的是,在验证和处理金额时,一定要考虑到小数点、千位分隔符、负数等各种情况,以确保输入的金额数据合法、准确、安全。

- 1 -。

JS正则表达式语法大全(非常详细)

JS正则表达式语法⼤全(⾮常详细)正则表达式是⼀种通⽤的⼯具,在 Script、、Java、、等⼏乎所有的编程语⾔中都能使⽤;但是,不同编程语⾔对正则表达式语法的⽀持不尽相同,有的编程语⾔⽀持所有的语法,有的仅⽀持⼀个⼦集。

本节讲到的正则表达式语法适⽤于 JavaScript。

正则表达式的语法体现在字符模式上。

字符模式是⼀组特殊格式的字符串,它由⼀系列特殊字符和普通字符构成,其中每个特殊字符都包含⼀定的语义和功能。

描述字符根据正则表达式语法规则,⼤部分字符仅能够描述⾃⾝,这些字符被称为普通字符,如所有的字母、数字等。

元字符就是拥有特动功能的特殊字符,⼤部分需要加反斜杠进⾏标识,以便于普通字符进⾏区别,⽽少数元字符,需要加反斜杠,以便转译为普通字符使⽤。

JavaScript 正则表达式⽀持的元字符如表所⽰。

元字符元字符描述.查找单个字符,除了换⾏和⾏结束符\w查找单词字符\W查找⾮单词字符\d查找数字\D查找⾮数字字符\s查找空⽩字符\S查找⾮空⽩字符\b匹配单词边界\B匹配⾮单词边界\0查找 NUL字符\n查找换⾏符\f查找换页符\r查找回车符\t查找制表符\v查找垂直制表符\xxx查找以⼋进制数 xxxx 规定的字符\xdd查找以⼗六进制数 dd 规定的字符\uxxxx查找以⼗六进制 xxxx规定的 Unicode 字符表⽰字符的⽅法有多种,除了可以直接使⽤字符本⾝外,还可以使⽤ ASCII 编码或者 Unicode 编码来表⽰。

⽰例1下⾯使⽤ ASCII 编码定义正则表达式直接量。

1. var r = /\x61/;2. var s = "JavaScript";3. var a = s.match(s);由于字母 a 的 ASCII 编码为 97,被转换为⼗六进制数值后为 61,因此如果要匹配字符 a,就应该在前⾯添加“\x”前缀,以提⽰它为 ASCII 编码。

⽰例2除了⼗六进制外,还可以直接使⽤⼋进制数值表⽰字符。

js匹配正则表达式的方法

js匹配正则表达式的方法JS 匹配正则表达式的方法在 JavaScript 中,使用正则表达式可以方便地进行字符串匹配与替换。

下面介绍几种 JS 匹配正则表达式的方法。

1. 使用 test() 方法test() 方法用来测试一个字符串是否符合某个正则表达式的规则,如果符合,则返回 true;如果不符合,则返回 false。

例如:```jsconst str = 'hello world';const pattern = /hello/;const result = pattern.test(str);console.log(result); // true```上面的代码中,使用正则表达式 /hello/ 来匹配字符串 str,因为 str 中包含 hello,所以返回 true。

2. 使用 match() 方法match() 方法用来在字符串中查找是否存在匹配正则表达式的子串,如果找到,则返回一个数组;如果没有找到,则返回 null。

例如:```jsconst str = 'hello world';const pattern = /hello/;const result = str.match(pattern);console.log(result); // ['hello']```上面的代码中,使用正则表达式 /hello/ 来匹配字符串 str,因为 str 中包含 hello,所以返回一个数组 ['hello']。

3. 使用 exec() 方法exec() 方法用来在字符串中查找是否存在匹配正则表达式的子串,如果找到,则返回一个数组;如果没有找到,则返回 null。

与 match() 方法不同的是,exec() 方法可以多次调用来查找匹配的子串。

例如:```jsconst str = 'hello world';const pattern = /o/g;let result;while ((result = pattern.exec(str)) !== null) {console.log(result[0], stIndex);}```上面的代码中,使用正则表达式 /o/g 来匹配字符串 str,因为 str 中有两个 o,所以会输出两次。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档