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 标记。

js 正则匹配 小结的更多相关文章

  1. js正则匹配的一个日常应用

    应用实例 1 /** 将段落中的 \n 转换为 <p></p>, 规范存储 */ 2 function formatParagraphForStore(val) { 3 var ...

  2. JS正则密码复杂度校验之:JS正则匹配半角英文符号

    概述 在JS密码校验中常常会遇到密码强度的校验需求,借用一位朋友提问的图,他在工作中遇到的一个比较经典的密码强度校验要求: 这个需求有两个难点,一,是如何使用正则匹配所有半角英文标点符号,二,是如何验 ...

  3. js正则匹配两位小数

    今天写一个用js正则校验最多保留两位小数的格式. a = /^\d+|\d+\.\d{1,2}$/; 测试 a.test(1.222); 结果:true 一下蒙了,怎么可能,最后找了好久,原来需要把^ ...

  4. js 正则匹配 域名【host】

    如果直接在js中是可以直接取到hostname的,以下方式是通过正则匹配: var url = "http://www.cnblogs.com/cench" var reg = / ...

  5. js 正则匹配(去掉html标签)

    正则匹配去掉所有html标签 var a = "<span>999</span>" a = a.replace(/<[^>]+>/g,' ...

  6. js正则匹配字符串

    这里我第一时间想到的就是用 js 的search 和 match ,其中最常见的是match: 1. str.search(regexp):search()方法不支持全局搜索,因为会忽略正则表达式参数 ...

  7. js正则匹配table,img及去除各种标签问题

    //获取公示栏内容 s = "$row.detail$"; mainContent =s; //如果有多个table使用下面注释的正则只会匹配成一个table //var tabR ...

  8. js正则匹配以某字符串开始字符串

    let decode_sql ="select * from table where create_user='user' order by id desc";   decode_ ...

  9. js正则匹配身份证号 有坑

    // 不能加g,每次匹配会以lastIndex为起始位去查找 // 若加g,匹配到会用最后一位的index去改变lastIndex,没有匹配到则会把lastIndex重置为0 // 不加g,lastI ...

随机推荐

  1. Node大文件处理

    之前有个需求要将文件解析再处理,当时直接将整个文件内容读到内存中然后解析,也是没有考虑到大文件的问题,那么要如何解析大文件呢? 输入:文件的内容是多个json,按顺序排列 输出:解析后的json数据 ...

  2. MySqlDBHelper数据库连接

    这里是本人在工作中用到,希望给大家帮助 public class MySqlDBHelper { //获取一个记录器 private static readonly log4net.ILog log ...

  3. CollectionUtils工具类使用指南

    CollectionUtils提供很多对集合的操作方法,常用的方法如下:(参考文章:http://www.open-open.com/code/view/1420470842125) import o ...

  4. [置顶] Android Shape一些新玩法?

    敏少咨讯: 1.生活琐事篇 最近由于公司赶项目所以偷懒了,博客没有及时更新,还请小伙伴们手下留情啊!最近发生了很多趣事,就在今天我们学校退书籍费,这可把我开心的哈哈!无缘无故又有钱了,嘿嘿,刚好五一出 ...

  5. MpVue开发之框架的搭建

    npm install --global  vue-cli vue脚手架 vue init mpvue/mpvue-quickstart  my-project 创建一个基于mpvue-quickst ...

  6. (效果三)js实现选项卡切换

    开发了很久的小程序,在接到一个h5移动端页面的时候,很多原生的东西都忘了,虽然说我们随着工作经验的增加,处理业务逻辑的能力在提高,但是基础的东西如果长时间不用,也会逐渐忘记.所以以后会经常总结原生的一 ...

  7. IOS Quartz 2D 学习(1)

    IOS提供两种创建图形的途径: 1.OpenGL. 2.Quartz.Core Animation.UIKit图形支持. UIKit的图形系统 1.视图绘画周期: DrawRect方法,在任何时候,当 ...

  8. js中typeof用法详细介绍

    typeof 运算符把类型信息当作字符串返回,包括有大家常有变量类型.   typeof 运算符把类型信息当作字符串返回.typeof 返回值有六种可能: "number," &q ...

  9. django配置静态文件

    django配置静态文件 参考文章链接:http://blog.csdn.net/hireboy/article/details/8806098

  10. fn project AWS Lambda 格式 functions

      Creating Lambda Functions Creating Lambda functions is not much different than using regular funct ...