js正则表达式
- 格式:doc
- 大小:64.00 KB
- 文档页数:12
js 负数正则表达式
在JavaScript中,负数的表示方法是在数字前面加上符号“-”。
如果你需要检查一个字符串是否为负数,可以使用正则表达式来实现。
下面是一个简单的负数正则表达式:
/^-?[0-9]d*(.d+)?$/
这个正则表达式的意思是:
-^ 表示字符串的开头必须是一个负号或者一个数字
-? 表示前面的负号是可选的
-[0-9] 表示一个数字
-d* 表示任意数量的数字(包括零个)
-(.d+)? 表示一个小数点和后面至少一个数字的可选组合
-$ 表示字符串的结尾
这个正则表达式可以匹配以下格式的字符串:
- -1
- -100
- -1.5
- -0.5
- -0.123
如果你想要检查一个字符串是否为正数或者零,可以使用以下正则表达式:
/^d+(.d+)?$/
这个正则表达式的意思是:
-^ 表示字符串的开头必须是一个数字
-d+ 表示一个或多个数字
-(.d+)? 表示一个小数点和后面至少一个数字的可选组合
-$ 表示字符串的结尾
这个正则表达式可以匹配以下格式的字符串:
- 1
- 100
- 1.5
- 0.5
- 0.123
- 0
总之,使用正则表达式可以方便地检查一个字符串是否为负数、正数或零,并且可以在 JavaScript 中轻松实现这个功能。
js非零的正整数正则表达式
在JavaScript中,我们可以使用正则表达式来匹配非零的正整数。
下面是一个示例的正则表达式:
```javascript
/^[1-9][0-9]*$/
```
该正则表达式的含义是以数字 1-9 开头,后面可以跟任意个数字 0-9,但开头必须为非零数字。
下面是一些示例:
```javascript
console.log(/^[1-9][0-9]*$/.test('0')); // false
console.log(/^[1-9][0-9]*$/.test('10')); // true
console.log(/^[1-9][0-9]*$/.test('100')); // true
console.log(/^[1-9][0-9]*$/.test('01')); // false
console.log(/^[1-9][0-9]*$/.test('0001')); // false
```
需要注意的是,该正则表达式只匹配非零的正整数,不包括零和负整数。
如果需要匹配包括零和负整数在内的整数,可以使用以下正则表达式:
```javascript
/^-?[0-9]+$/
```
该正则表达式的含义是以可选的负号开头,后面跟任意个数字0-9,整个字符串必须全部为数字。
js的replaceall 正则表达式使用JavaScript的replaceAll正则表达式在JavaScript中,我们经常需要对字符串进行替换操作,例如将某个字符串中的特定字符或模式替换为其他字符或字符串。
在这种情况下,我们可以使用JavaScript的replaceAll()方法来实现。
该方法可以接受一个正则表达式作为参数,用于匹配要替换的字符或模式,并将其替换为指定的字符或字符串。
让我们来看一下replaceAll()方法的语法:str.replaceAll(regexp, newSubStr)其中,str是要进行替换操作的字符串,regexp是一个正则表达式,用于匹配要替换的字符或模式,newSubStr是用于替换的新字符或字符串。
接下来,让我们通过一些例子来说明如何使用replaceAll()方法。
例子1:将字符串中的所有空格替换为下划线```let str = "Hello World! This is a test.";let newStr = str.replaceAll(/\s/g, "_");console.log(newStr);// Output: "Hello_World!_This_is_a_test."```在这个例子中,我们使用正则表达式/\s/g来匹配字符串中的所有空格。
其中,\s表示空白字符,g表示全局匹配。
然后,我们将空格替换为下划线,并将结果赋值给newStr变量。
最后,我们打印出newStr的值,结果为"Hello_World!_This_is_a_test."。
例子2:将字符串中的所有数字替换为空字符```let str = "The number is 12345.";let newStr = str.replaceAll(/\d/g, "");console.log(newStr);// Output: "The number is ."```在这个例子中,我们使用正则表达式/\d/g来匹配字符串中的所有数字。
js 8位数字的正则正则表达式是一种用于匹配和处理文本的强大工具。
它能够帮助我们在大量文本中找到特定模式的内容,其中之一就是匹配8位数字。
一个8位数字是指由8个数字字符组成的数字字符串,这些数字可以是从0到9的任意数字。
下面让我们来看一下如何使用正则表达式来匹配和处理这样的数字。
首先,我们需要使用正则表达式的语法来定义一个模式,以便匹配8位数字。
对于8个数字字符组成的字符串,我们可以使用"\d"来表示一个数字字符。
那么一个8位数字的正则表达式模式可以写为:\d{8}。
这里的"\d"表示匹配一个数字字符,"{8}"表示这个数字字符应该出现8次。
为了更好地理解这个正则表达式模式,我们可以举一个例子。
假设我们有一个字符串"12345678",它正好是一个符合8位数字模式的字符串。
通过使用正则表达式,我们可以轻松地验证这一点。
下面是一个使用JavaScript进行匹配的示例代码:```javascriptconst string = "12345678";const pattern = /^\d{8}$/;if (pattern.test(string)) {console.log("匹配成功!");} else {console.log("不是8位数字!");}```在上面的代码中,我们使用了正则表达式对象的`test()`方法来检查给定的字符串是否与模式匹配。
如果匹配成功,我们将输出"匹配成功!";如果不匹配,我们将输出"不是8位数字!"。
正则表达式的强大之处在于它的灵活性。
除了匹配8位数字,我们还可以根据需要进行更多的定制。
例如,如果我们只需要匹配以数字开头的8位数字,可以将模式修改为:"^\d{8}",其中的"^"表示匹配字符串的开头。
js两位小数正则表达式JS两位小数正则表达式在JavaScript中,正则表达式是一种强大的工具,可以用来匹配和处理字符串。
在很多情况下,我们需要对数字进行格式化,比如保留两位小数。
这时候,我们可以使用正则表达式来实现。
正则表达式是一种用来描述字符串模式的语言。
它可以用来匹配、搜索、替换和验证字符串。
在JavaScript中,我们可以使用RegExp 对象来创建正则表达式。
下面是一个简单的例子,用来匹配一个字符串是否为数字:```javascriptvar reg = /^\d+$/;console.log(reg.test("123")); // trueconsole.log(reg.test("abc")); // false```在上面的例子中,我们使用了正则表达式的元字符“\d”,表示匹配任意数字。
而“+”表示匹配一个或多个数字。
所以,这个正则表达式可以匹配一个或多个数字组成的字符串。
接下来,我们来看一下如何使用正则表达式来保留两位小数。
```javascriptvar reg = /^\d+(\.\d{1,2})?$/;console.log(reg.test("123.45")); // trueconsole.log(reg.test("123.456")); // falseconsole.log(reg.test("123")); // true```在上面的例子中,我们使用了正则表达式的元字符“\.”,表示匹配小数点。
而“\d{1,2}”表示匹配一个或两个数字。
所以,这个正则表达式可以匹配一个或多个数字,后面跟着一个小数点和一个或两个数字。
我们使用了“?”来表示小数部分是可选的。
这样,这个正则表达式就可以匹配整数和小数了。
总结正则表达式是一种强大的工具,可以用来匹配和处理字符串。
一、介绍正则表达式以及JavaScript中的正则表达式在进行js正则提取指定字符之间的字符之前,首先需要对正则表达式以及JavaScript中的正则表达式进行介绍。
正则表达式是用于匹配字符串的一种模式,在各种编程语言中都有广泛的应用。
JavaScript作为一种强大的脚本语言,也内置了对正则表达式的支持,通过使用正则表达式,可以对字符串进行复杂的匹配和提取操作。
二、JavaScript中的正则表达式语法JavaScript中的正则表达式可以使用两种方式来创建,一种是使用RegExp对象,另一种是使用字面量。
正则表达式的语法包括普通字符(例如字母、数字等)、元字符(用于描述一个或多个字符的模式)、修饰符(用于指定匹配模式的标志)。
其中,正则表达式的元字符包括了一些特殊的字符,比如“^”表示匹配输入的开始,“$”表示匹配输入的结束等等。
三、实现JavaScript正则提取指定字符之间的字符为了实现JavaScript正则表达式提取指定字符之间的字符,首先需要构建一个合适的正则表达式模式。
正则表达式提供了多种元字符和修饰符,可以通过组合这些元素来满足不同的提取需求。
在提取指定字符之间的字符的情况下,通常会使用“贪婪匹配”或“非贪婪匹配”,以及使用“分组”的方式来提取需要的部分。
四、提取指定字符之间的字符的常用正则表达式模式通过构建合适的正则表达式模式,可以实现提取指定字符之间的字符。
以下列举了一些常用的正则表达式模式:1. 提取括号内的内容通过使用“\((.*?)\)”的正则表达式模式,可以提取字符串中括号内的内容。
2. 提取引号内的内容通过使用“\"(.*?)\"”的正则表达式模式,可以提取字符串中引号内的内容。
3. 提取特定标签之间的内容通过使用“<tag>(.*?)<\/tag>”的正则表达式模式,可以提取HTML标签中特定标签之间的内容。
五、JavaScript中的正则提取方法在构建好合适的正则表达式模式之后,可以使用JavaScript中的正则提取方法来实现对指定字符之间的内容提取。
js正则匹配所有标点符号的方法文章标题:探索JavaScript正则表达式匹配所有标点符号的方法在今天的数字时代,JavaScript已经成为前端开发者不可或缺的一门技能。
而正则表达式作为JavaScript语言中的重要部分,更是在处理文本的过程中发挥着不可替代的作用。
在这篇文章中,我们将深入探讨JavaScript正则表达式如何匹配所有标点符号的方法,并结合个人理解和经验进行分析。
1. 什么是正则表达式让我们简要回顾一下正则表达式(Regular Expression)。
正则表达式是一种特殊的字符序列,它可以用来检查一个字符串是否与某种模式匹配。
在JavaScript中,我们可以利用正则表达式来进行字符串的搜索、替换与提取等操作。
正则表达式由字面量和RegExp构造函数两种方式来创建,并且拥有丰富的语法和特性,包括字符类、重复、分组、选择、定位和量词等。
2. 匹配所有标点符号接下来,让我们重点关注如何利用JavaScript正则表达式来匹配所有标点符号。
标点符号是指在文中用于标点、分隔和引号等目的的特殊字符,包括但不限于句号、逗号、感叹号、问号、引号、分号和冒号等。
在实际应用中,我们经常需要对文本中的标点符号进行处理,例如去除标点符号、统计标点符号数量等。
以下是简单的方法来匹配所有标点符号的正则表达式:```javascriptvar str = "Hello, this is a sample text! It contains some punctuation.";var punctuation = /[.,\/#!$%\^&\*;:{}=\-_`~()]/g;var result = str.match(punctuation);console.log(result); // 输出: [",", "!", "."]```上述代码中,我们使用了字符类[]和g修饰符来创建一个匹配所有标点符号的正则表达式。
js 正则表达式反编译JavaScript中的正则表达式反编译是指将编译后的正则表达式代码转换回其原始的字符串形式。
以下是一个简单的JavaScript正则表达式反编译的示例:function compileToRegex(str) {// 编译正则表达式const regex = new RegExp(str);// 获取正则表达式的源代码const sourceCode = regex.source;// 删除正则表达式中的反斜杠转义字符const cleanedSourceCode = sourceCode.replace(/\\/g, '');// 将正则表达式的源代码转换为字符串const regexString = cleanedSourceCode.replace(/\//g, '').trim();return regexString;}const input = '/^(?:\\d+)$/g';const result = compileToRegex(input);console.log(result); // 输出:/^(?:\\d+)$/g这个示例中,我们首先使用RegExp构造函数编译输入的正则表达式。
然后,我们从编译后的正则表达式对象中获取其源代码。
接下来,我们删除源代码中的反斜杠转义字符,并将剩余的部分转换为字符串。
最后,我们得到了原始的正则表达式字符串。
需要注意的是,这个示例仅适用于简单的正则表达式。
对于更复杂的情况,反编译可能需要进行更多的处理,例如处理分组、捕获变量、非贪婪匹配等。
此外,这个示例仅适用于JavaScript 环境。
在其他编程语言中,正则表达式的编译和反编译方式可能有所不同。
JS正则表达式控制⽂本框只能输⼊中⽂、英⽂、数字与指定特殊符号JS 正则表达式控制⽂本框只能输⼊中⽂、英⽂、数字与指定特殊符号(屏蔽表情输⼊)onkeyup:释放键盘事件onpaste:粘贴事件oncontextmenu :⿏标右击事件只能输⼊中⽂:οnkeyup="this.value=this.value.replace(/[^\u4e00-\u9fa5\w]/g,'')"只能输⼊数字:οnkeyup="value=value.replace(/[^\d]/g,'') "只能输⼊数字和字母:οnkeyup="value=value.replace(/[\W]/g,'') "JS控制只能输⼊⼩写英⽂和数字οnkeyup="value=value.replace(/[^\a-z\0-9]/g,'') "禁⽌输⼊特殊字符:onkeyup="value=value.replace(/[\W]/g,'')"οnkeyup="value=value.replace(/[^u4e00-u9fa5w]/g,'')"JS 控制⽂本框只能输⼊数字input οnkeyup="value=value.replace(/[^0-9]/g,'')" οnpaste="value=value.replace(/[^0-9]/g,'')" oncontextmenu = "value=value.replace(/[^0-9]/g,'')"JS 控制⽂本框只能输⼊数字、⼩数点input οnkeyup="value=value.replace(/[^\0-9\.]/g,'')" οnpaste="value=value.replace(/[^\0-9\.]/g,'')" oncontextmenu ="value=value.replace(/[^\0-9\.]/g,'')">JS 控制⽂本框只能输⼊英⽂input οnkeyup="value=value.replace(/[^\a-\z\A-\Z]/g,'')" οnpaste="value=value.replace(/[^\a-\z\A-\Z]/g,'')" oncontextmenu ="value=value.replace(/[^\a-\z\A-\Z]/g,'')">JS 控制⽂本框只能输⼊英⽂、数字input οnkeyup="value=value.replace(/[^\a-\z\A-\Z0-9]/g,'')" οnpaste="value=value.replace(/[^\a-\z\A-\Z0-9]/g,'')" oncontextmenu = "value=value.replace(/[^\a-\z\A-\Z0-9]/g,'')">JS 控制⽂本框只能输⼊中⽂input οnkeyup="value=value.replace(/[^\u4E00-\u9FA5]/g,'')" οnpaste="value=value.replace(/[^\u4E00-\u9FA5]/g,'')" oncontextmenu = "value=value.replace(/[^\u4E00-\u9FA5]/g,'')">JS 控制⽂本框只能输⼊中⽂、英⽂、数字input οnkeyup="value=value.replace(/[^\a-\z\A-\Z0-9\u4E00-\u9FA5]/g,'')" οnpaste="value=value.replace(/[^\a-\z\A-\Z0-9\u4E00-\u9FA5]/g,'')" oncontextmenu = "value=value.replace(/[^\a-\z\A-\Z0-9\u4E00-\u9FA5]/g,'')">JS 控制⽂本框只能输⼊中⽂、英⽂、数字、空格input οnkeyup="value=value.replace(/[^\a-\z\A-\Z0-9\u4E00-\u9FA5\ ]/g,'')" οnpaste="value=value.replace(/[^\a-\z\A-\Z0-9\u4E00-\u9FA5\ ]/g,'')" oncontextmenu = "value=value.replace(/[^\a-\z\A-\Z0-9\u4E00-\u9FA5\ ]/g,'')">JS 控制⽂本框只能输⼊中⽂、英⽂、数字、⼩数点input οnkeyup="value=value.replace(/[^\a-\z\A-\Z0-9\u4E00-\u9FA5\.]/g,'')" οnpaste="value=value.replace(/[^\a-\z\A-\Z0-9\u4E00-\u9FA5\.]/g,'')" oncontextmenu = "value=value.replace(/[^\a-\z\A-\Z0-9\u4E00-\u9FA5\.]/g,'')">总⽽⾔之:先在input标签⾥输⼊οnkeyup="value=value.replace(/[^\X]/g,'')" 然后在(/[\X]/g,'')⾥的X换成你想输⼊的代码就可以了,中⽂u4E00-u9FA5,数字0-9,英⽂a-z\A-Z,其它符号@、点或其它符号。
JS基于正则表达式的替换操作(replace)⽤法⽰例本⽂实例讲述了JS基于正则表达式的替换操作(replace)⽤法。
分享给⼤家供⼤家参考,具体如下:正则表达式替换使⽤的是replace()⽅法。
Replace()⽅法是⽤⼀些字符途欢另⼀些字符语法:stringObject.replace(regexp,replacement)regexp必需。
规定了要替换的模式的 RegExp 对象。
请注意,如果该值是⼀个字符串,则将它作为要检索的直接量⽂本模式,⽽不是⾸先被转换为 RegExp 对象。
replacement必需。
⼀个字符串值。
规定了替换⽂本或⽣成替换⽂本的函数。
replacement 可以是字符串,也可以是函数。
如果它是字符串,那么没有匹配都将由字符串替换。
但是 replacement 中的 $ 字符具有特定的含义。
举例:<script>//"5=a,6=b,7=c"换成"a=5,b=6,c=7"var str="5=a,6=b,7=c";str=str.replace(/(\d+)=(\w)/g,"$2=$1");console.log(str);</script>Instanceof<!DOCTYPE html><html><head lang="en"><meta charset="UTF-8"><title></title></head><body><script>var str="abc";console.log(str instanceof Array);//判断变量的类型是否为数组var arr=[];console.log(arr instanceof Array);</script></body></html>Location:<!DOCTYPE html><html><head lang="en"><meta charset="UTF-8"><title></title></head><body><input type="button" value="按钮" id="btn"/><script>var btn=document.getElementById("btn");btn.onclick=function(){window.location.href="04键盘事件练习.html" rel="external nofollow" ;//链接的位置}</script></body></html>Screen:<!DOCTYPE html><html><head lang="en"><meta charset="UTF-8"><title></title></head><body><script>//获取屏幕的分辨率console.log(screen.width);console.log(screen.height);//获取屏幕的分辨率除去任务栏之后console.log(screen.availHeight);console.log(screen.availWidth);</script></body></html>PS:这⾥再为⼤家提供2款⾮常⽅便的正则表达式⼯具供⼤家参考使⽤:更多关于JavaScript相关内容感兴趣的读者可查看本站专题:《》、《》、《》、《》、《》、《》、《》及《》希望本⽂所述对⼤家JavaScript程序设计有所帮助。
2008/04/28 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) { var patrn=/^[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}$/; var patrn=/^[a-zA-Z0-9 ]{3,12}$/; if (!patrn.exec(s)) return false return true } [/code]
//校验搜索关键字 [code] function isSearch(s) { var patrn=/^[^`~!@#$%^&*()+=|\\\][\]\{\}:;'\,.<>/?]{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]
正则表达式使用详解
简介 简单的说,正则表达式是一种可以用于模式匹配和替换的强有力的工具。其作用如下: 测试字符串的某个模式。例如,可以对一个输入字符串进行测试,看在该字符串是否存在一个电话号码模式或一个信用卡号码模式。这称为数据有效性验证。 替换文本。可以在文档中使用一个正则表达式来标识特定文字,然后可以全部将其删除,或者替换为别的文字。 根据模式匹配从字符串中提取一个子字符串。可以用来在文本或输入字段中查找特定文字。
基本语法 在对正则表达式的功能和作用有了初步的了解之后,我们就来具体看一下正则表达式的语法格式。
正则表达式的形式一般如下: /love/ 其中位于“/”定界符之间的部分就是将要在目标对象中进行匹配的模式。用户只要把希望查找匹配对象的模式内容放入“/”定界符之间即可。为了能够使用户更加灵活的定制模式内容,正则表达式提供了专门的“元字符”。所谓元字符就是指那些在正则表达式中具有特殊意义的专用字符,可以用来规定其前导字符(即位于元字符前面的字符)在目标对象中的出现模式。 较为常用的元字符包括: “+”, “*”,以及 “?”。
“+”元字符规定其前导字符必须在目标对象中连续出现一次或多次。 “*”元字符规定其前导字符必须在目标对象中出现零次或连续多次。 “?”元字符规定其前导对象必须在目标对象中连续出现零次或一次。 下面,就让我们来看一下正则表达式元字符的具体应用。 /fo+/ 因为上述正则表达式中包含“+”元字符,表示可以与目标对象中的 “fool”, “fo”, 或者 “football”等在字母f后面连续出现一个或多个字母o的字符串相匹配。 /eg*/ 因为上述正则表达式中包含“*”元字符,表示可以与目标对象中的 “easy”, “ego”, 或者 “egg”等在字母e后面连续出现零个或多个字母g的字符串相匹配。
/Wil?/ 因为上述正则表达式中包含“?”元字符,表示可以与目标对象中的 “Win”, 或者“Wilson”,等在字母i后面连续出现零个或一个字母l的字符串相匹配。
有时候不知道要匹配多少字符。为了能适应这种不确定性,正则表达式支持限定符的概念。这些限定符可以指定正则表达式的一个给定组件必须要出现多少次才能满足匹配。
{n} n 是一个非负整数。匹配确定的 n 次。例如,'o{2}' 不能匹配 "Bob" 中的 'o',但是能匹配 "food" 中的两个 o。
{n,} n 是一个非负整数。至少匹配 n 次。例如,'o{2,}' 不能匹配 "Bob" 中的 'o',但能匹配 "foooood" 中的所有 o。'o{1,}' 等价于 'o+'。'o{0,}' 则等价于 'o*'。
{n,m} m 和 n 均为非负整数,其中n <= m。最少匹配 n 次且最多匹配 m 次。例如,"o{1,3}" 将匹配 "fooooood" 中的前三个 o。'o{0,1}' 等价于 'o?'。请注意在逗号和两个数之间不能有空格。
除了元字符之外,用户还可以精确指定模式在匹配对象中出现的频率。例如,/jim {2,6}/ 上述正则表达式规定字符m可以在匹配对象中连续出现2-6次,因此,上述正则表达式可以同jimmy或jimmmmmy等字符串相匹配。 在对如何使用正则表达式有了初步了解之后,我们来看一下其它几个重要的元字符的使用方式。 [code] \s:用于匹配单个空格符,包括tab键和换行符; \S:用于匹配除单个空格符之外的所有字符; \d:用于匹配从0到9的数字; \w:用于匹配字母,数字或下划线字符; \W:用于匹配所有与\w不匹配的字符; . :用于匹配除换行符之外的所有字符。 [/code] (说明:我们可以把\s和\S以及\w和\W看作互为逆运算) 下面,我们就通过实例看一下如何在正则表达式中使用上述元字符。 /\s+/ 上述正则表达式可以用于匹配目标对象中的一个或多个空格字符。 /\d000/ 如果我们手中有一份复杂的财务报表,那么我们可以通过上述正则表达式轻而易举的查找到所有总额达千元的款项。 除了我们以上所介绍的元字符之外,正则表达式中还具有另外一种较为独特的专用字符,即定位符。定位符用于规定匹配模式在目标对象中的出现位置。 较为常用的定位符包括: “^”, “$”, “\b” 以及 “\B”。 [code] “^”定位符规定匹配模式必须出现在目标字符串的开头 “$”定位符规定匹配模式必须出现在目标对象的结尾 “\b”定位符规定匹配模式必须出现在目标字符串的开头或结尾的两个边界之一 “\B”定位符则规定匹配对象必须位于目标字符串的开头和结尾两个边界之内, 即匹配对象既不能作为目标字符串的开头,也不能作为目标字符串的结尾。 [/code] 同样,我们也可以把“^”和“$”以及“\b”和“\B”看作是互为逆运算的两组定位符。举例来说: /^hell/ 因为上述正则表达式中包含“^”定位符,所以可以与目标对象中以 “hell”, “hello”或“hellhound”开头的字符串相匹配。 /ar$/ 因为上述正则表达式中包含“$”定位符,所以可以与目标对象中以 “car”, “bar”或 “ar” 结尾的字符串相匹配。 /\bbom/ 因为上述正则表达式