`
280395291
  • 浏览: 8735 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

js 正则匹配 小结

阅读更多
JS的正则表达式

rge.test(str) 检验目标对象中是否包含匹配模式,并相应的返回true或false   rge.source
str.search(rge) 将返回一个整数值,指明这个匹配距离字符串开始的偏移位置。如果没有找到匹配,则返回 -1
str.replace(re, function(){}) 替换匹配到的数值
rge.exec(str) 没有找到匹配,则它返回 null。如果它找到匹配,则 exec 方法返回一个数
str.match(rge) 用正则表达式模式在字符串中运行查找,并返回包含该查找结果的一个数组(全文匹配模式g,否则只返回第

一个匹配的内容)
match 方法没有找到匹配,返回 null。如果找到匹配返回一个数组并且更新全局 RegExp 对象的属性以反映匹配结果
Input 属性包含整个的被查找字符串。
Index 属性包含了在整个被查找字符串中匹配的子字符串的位置。
LastIndex 属性包含了最后一次匹配中最后一个字符的下一个位置。 

function RegExpTest() 

var ver = Number(ScriptEngineMajorVersion() + "." + ScriptEngineMinorVersion()) 
if (ver >= 5.5){ // 测试 JScript 的版本。 
var src = "The rain in Spain falls mainly in the plain."; 
var re = /\w+/g; // 创建正则表达式模式。 
var arr; 
while ((arr = re.exec(src)) != null) 
document.write(arr.index + "-" + arr.lastIndex + arr + "\t"); 

else{ 
alert("请使用 JScript 的更新版本"); 

}   
语法 1 re = /pattern/[flags] 
语法 2 re = new RegExp("pattern",["flags"])  
g (全文查找出现的所有 pattern)  
     i (忽略大小写)  
     m (多行查找)

定界符:/ /
前导字符:
元字符:规定前导字符在目标对象中出现的模式

“+”元字符规定其前导字符必须在目标对象中连续出现一次或多次。 /fo+/
“*”元字符规定其前导字符必须在目标对象中出现零次或连续多次。 /eg*/
“?”元字符规定其前导对象必须在目标对象中连续出现零次或一次。 /Wil?/

限定符:可以指定正则表达式的一个给定组件必须要出现多少次才能满足匹配。 {n} n    {n,}    {n,m} 
       
\s:用于匹配单个空格符,包括tab键和换行符;  
\S:用于匹配除单个空格符之外的所有字符;  
\d:用于匹配从0到9的数字;[0-9]
\D:用于匹配从0到9的数字;[^0-9]
\w:用于匹配字母,数字或下划线字符;'[A-Za-z0-9_]'  
\W:用于匹配所有与\w不匹配的字符;'[^A-Za-z0-9_]'  
. :用于匹配除换行符之外的所有字符。  

\cx 匹配由x指明的控制字符。例如, \cM 匹配一个 Control-M 或回车符。 x 的值必须为 A-Z 或 a-z 之一。否

则,将 c 视为一个原义的 'c' 字符。  
\f 匹配一个换页符。等价于 \x0c 和 \cL。  
\n 匹配一个换行符。等价于 \x0a 和 \cJ。  
\r 匹配一个回车符。等价于 \x0d 和 \cM。  
\s 匹配任何空白字符,包括空格、制表符、换页符等等。等价于 [ \f\n\r\t\v]。  
\S 匹配任何非空白字符。等价于 [^ \f\n\r\t\v]。  
\t 匹配一个制表符。等价于 \x09 和 \cI。  
\v 匹配一个垂直制表符。等价于 \x0b 和 \cK。

定位符:规定匹配模式在目标对象中的出现位置。 较为常用的定位符包括: “^”, “$”, “\b” 以及 “\B”。

“^”定位符规定匹配模式必须出现在目标字符串的开头 
“$”定位符规定匹配模式必须出现在目标对象的结尾 
“\b”定位符规定匹配模式必须出现在目标字符串的开头或结尾的两个边界之一 
“\B”定位符则规定匹配对象必须位于目标字符串的开头和结尾两个边界之内, 

为了能够方便用户更加灵活的设定匹配模式,正则表达式允许使用者在匹配模式中指定某一个范围而不局限于具体的字符。

例如:
    /([a-z][A-Z][0-9])+/ 上述正则表达式将会与任何由字母和数字组成的字符串,如 “aB0” 等相匹配。 
   “|”。例如:/to|too|2/ 上述正则表达式将会与目标对象中的 “to”, “too”, 或 “2” 相匹配。
   否定符 “[^]”。与我们前文所介绍的定位符 “^” 不同,否定符 “[^]”规定目标对象中不能存在模式中所规   定

的字符串。

   当“^”出现在 “[]”内时就被视做否定运算符;而当“^”位于“[]”之外,或没有“[]”时,则应当被视做定   位

符。
   ? 当该字符紧跟在任何一个其他限制符 (*, +, ?, {n}, {n,}, {n,m}) 后面时,匹配模式是非贪婪的。非贪婪模   式

尽可能少的匹配所搜索的字符串,而默认的贪婪模式则尽可能多的匹配所搜索的字符串。例如,对于字符串  

"oooo",'o+?' 将匹配单个 "o",而 'o+' 将匹配所有 'o'。  
   . 匹配除 "\n" 之外的任何单个字符。要匹配包括 '\n' 在内的任何字符,请使用象 '[.\n]' 的模式。

优先级如下: 
1.\ 转义符 
2.(), (?:), (?=), [] 圆括号和方括号 
3.*, +, ?, {n}, {n,}, {n,m} 限定符 
4.^, $, \anymetacharacter 位置和顺序 
5.|“或”操作 

正则表达式
"^\\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_]*$"
/^\[ \t]*$/ "^\[ \t]*$" 匹配一个空白行。  
/\d{2}-\d{5}/ "\d{2}-\d{5}" 验证一个ID 号码是否由一个2位数字,一个连字符以及一个5位数字组成。  
/<(.*)>.*<\/\1>/ "<(.*)>.*<\/\1>" 匹配一个 HTML 标记。
分享到:
评论

相关推荐

    JavaScript正则表达式小结(test|match|search|replace|split|exec)

    学JavaScript正则的好文一篇:http://www.cainiao8.com/web/js_note/js_regular_expression.html test:测试string是否包含有匹配结果,包含返回true,不包含返回false。 [removed] var str = bbs.byr.cn; var ...

    js正则表达式中的问号几种用法小结

    主要介绍了js正则表达式中的问号几种用法,比如+?,*?,{2,3}?可以停止匹配的贪婪模式,感兴趣的朋友可以参考下

    javascript之正则表达式基础知识小结

    如果记不清楚那些标点符号需要转移,可以在使用标点符号时都使用反斜杠“\” 简单匹配 1、直接量 /javascript/ 匹配带有“javascript”的字符串 比如“javascript is an object-oriented scripting language” 2、...

    JavaScript学习小结(7)之JS RegExp

    在js中,正则表达式是由一个RegExp对象表示的,RegExp 是正则表达式的缩写。RegExp简单的模式可以是一个单独的字符。更复杂的模式包括了更多的字符,并可用于解析、格式检查、替换等等。可以使用一个RegExp()构造函数...

    javascript中match函数的用法小结

    javascript中的match函数是使用正则表达式对字符串进行查找,并将查找的结果作为数组返回,在实际开发中非常的有用,使用方法如下: stringObj.match(rgExp) 其中stringObj是必选项。对其进行查找的 String 对象或字符...

    Javascript中replace()小结

     replace() 方法用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串。 关于语法 stringObject.replace(regexp/substr,replacement) 关于参数 参数 描述 regexp/substr 必需。规定...

    JQuery 操作Javascript对象和数组的工具函数小结

    空白字符为任何匹配Javascript正则表达式\s的任何字符。包括空格、换页、换行、回车、tab、垂直指标符等。 $.each(container, callback) 对container的每一项进行迭代,为每一项调用回调函数callback。 container ...

    每天一篇javascript学习小结(String对象)

    match() 方法可在字符串内检索指定的值,或找到一个或多个正则表达式的匹配。 该方法类似 indexOf() 和 lastIndexOf(),但是它返回指定的值,而不是字符串的位置。 语法 stringObject.match(searchvalue) ...

    使用js获取QueryString的方法小结

    从网上看到一些使用js获取QueryString的方法,但用起来不是很理想,所以决定自己写一个。主要原理是使用正则表达式匹配location.search中的字符串。

    javascript实现将数字转成千分位的方法小结【5种方式】

    本文实例讲述了javascript实现将数字转成千分位的方法。分享给大家供大家参考,具体如下: 尽管离过年还有两个月之久,春运抢票的战斗已经打响了,悲剧的是我还没抢到票,看到某浏览器上的数字时,想到一个经典面试...

    JavaScript权威指南(第6版)中文版pdf+源代码

     5.8 JavaScript语句小结116  第6章 对象118  6.1 创建对象120  6.2 属性的查询和设置123  6.3 删除属性127  6.4 检测属性128  6.5 枚举属性130  6.6 属性getter和setter132  6.7 属性的特性134  6.8 对象...

    JavaScript权威指南(第6版)(附源码)

    5.8 JavaScript语句小结 第6章 对象 6.1 创建对象 6.2 属性的查询和设置 6.3 删除属性 6.4 检测属性 6.5 枚举属性 6.6 属性getter和setter 6.7 属性的特性 6.8 对象的三个属性 6.9 序列化对象 6.10 对象方法 第7章...

    JavaScript 权威指南(第四版).pdf

     5.8 JavaScript语句小结116  第6章 对象118  6.1 创建对象120  6.2 属性的查询和设置123  6.3 删除属性127  6.4 检测属性128  6.5 枚举属性130  6.6 属性getter和setter132  6.7 属性的特性134  6.8 对象...

    JavaScript权威指南(第6版)

    5.8 JavaScript语句小结 第6章 对象 6.1 创建对象 6.2 属性的查询和设置 6.3 删除属性 6.4 检测属性 6.5 枚举属性 6.6 属性getter和setter 6.7 属性的特性 6.8 对象的三个属性 6.9 序列化对象 6.10 对象方法 第7章 ...

    JS Replace 全部替换字符的用法小结

    script language=”javascript”&gt;var r= “1\n2\n3\n”;//将字母\n替换成分号alert&#40;r.replace(“\n”,”;”&#41;); 结果:1;... replace 的第一个参数可以是正则表达式,/g标识全文匹配。[removed]

    php网络开发完全手册

    1.7 小结 23 第2章 PHP的基础语法 24 2.1 语言构成与工作原理 24 2.2 常量与变量 25 2.2.1 常量的定义 25 2.2.2 变量的定义 26 2.2.3 变量的作用域 27 2.2.4 动态变量 29 2.3 运算符和关键字 29 2.4 流程控制语法 30...

    JavaScript权威指南(第6版)(中文版)

    5.8 JavaScript语句小结 第6章 对象 6.1 创建对象 6.2 属性的查询和设置 6.3 删除属性 6.4 检测属性 6.5 枚举属性 6.6 属性getter和setter 6.7 属性的特性 6.8 对象的三个属性 6.9 序列化对象 6.10 对象方法 第7章 ...

    JavaScript权威指南(第6版)中文文字版

    5.8 javascript语句小结 116 第6章 对象 118 6.1 创建对象 120 6.2 属性的查询和设置 123 6.3 删除属性 127 6.4 检测属性 128 6.5 枚举属性 130 6.6 属性getter和setter 132 6.7 属性的特性 134 6.8 对象的三个属性 ...

    深入云计算 MongoDB管理与开发实战详解pdf.part1

    作为基于分布式文件存储的数据库,在目前的云计算实践中,MongoDB炙手可热。《深入云计算(MongoDB管理与开发实战详解)》系统全面的介绍了MongoDB开发、管理、维护和性能优化等方方面面。...16.6 本章小结

Global site tag (gtag.js) - Google Analytics