<!DOCTYPE html>
<html>
<head>
<title>title</title>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" name="viewport"> <script src="jquery.min.js"></script>
<script src="bootstrap.min.js"></script>
<script src="vue.min.js"></script>
</head> <body>
<div id="app">
<input type="text" v-model="x">
<input type="button" value="验证" @click="validate">
</div> <script> var vm = new Vue({
el: '#app',
data:{
x: '100000000'
},
methods: {
validate: function(){ }
}
}); //常用方法:
//reg.test(str);
//str.match(reg); 返回匹配完的结果字符串 //参考文档W3CSchool:http://www.w3school.com.cn/jsref/jsref_obj_regexp.asp
//原则:默认是贪婪匹配(匹配出的字串即最长匹配子串) var reg1 = /abc/; //查找模式串'abc' var reg2 = new RegExp("abc"); var reg3 = new RegExp(reg2); //创建Reg2的副本给Reg3 var reg4 = RegExp(reg2); //直接把reg4指向reg2,操作reg4等于直接操作reg2 var reg5 = /abc/i; //执行对大小写不敏感的匹配 var reg6 = /abc/g; //执行全局匹配,在查找到第一个后不会停止 var reg7 = /abc/m; //执行多行匹配,当待匹配字符串具有换行符\n时,能够进行多行匹配 var reg8 = /[0-9][0-9][0-9]/g; //匹配连续三位是任意数字的字串,查找到一个以后不会停止 var reg9 = /[0-9A-z][cd][d]/g; //匹配出的字串第一位是任意数字或字母,第二位是c或d,第三位是d,并为全局匹配 var reg10 = /[^a]/; //匹配第一个非a的字串 var reg11 = /[a|b]/; //匹配第一个a或b的字串 var reg12 = /(abc|bcd)[0-9]/; //匹配第一个abc+任意数字或bcd+任意数字 var reg13 = /\w/; // \w等价于:[0-9A-z_]
// \W等价于:^\w var reg14 = /\d/; // \d等价于:[0-9] var reg15 = /[\w\d]/; //可以在表达式写元字符!! // \s等价于:[\n\t\f\r\v ] 换行符+换页符+回车符+制表符+垂直制表符+空格 var reg16 = /\bc/; //表示C作为单词边界,且是单词头部 var reg17 = /\u597d/; //Unicode编码也能匹配汉字 \u597d:好 var reg18 = /\w{2,}/g; //匹配所有任意2个以上任意字符 var GoogleEmailValidate = /[\s\S]*@gmail.com/; //判断是否是谷歌邮箱的字符串 var reg19 = /(\w)\1\1\1/; // 小括号内是子表达式,而\1指引用第一个子表达式的内容(反向引用)
// 整个表达式意思是:字符串以xxxx(x为任意字符)的形式匹配
// Tip:子表达式匹配的内容会出现在结果数组中,可以当数组使,前提是不是全局匹配! // 关于split方法,如果含有子表达式,则结果数组中保留分割条件字符,否则分割条件字符不保留
// 关于replace方法,如果参数不是正则表达式,则替换不是全局替换,若是全局的正则表达式匹配,才会进行全局替换
// str.replace(new RegExp('/(\w)\1(\w)\2/'), "$2$2$1$1") $1$2是反向引用了前面表达式中的子表达式 // 将the-first-name变为驼峰命名theFirstName,原理是将'-f'替换为'F'
// var reg = /-(\w)/g;
/* str.replace(reg, function($, $1){
return $1.toUpperCase();
}) function是匹配一次执行一次,若是全局匹配,则会执行一到多次
*/ //正向断言:
var reg20 = /a(?=b)/g; //匹配任何出现在b之前的a,但不包括b //调整为非贪婪匹配
var reg21 = /a*?/g; //包含任意多个a的子串,但'?'表示用非贪婪方式(匹配出的子串能少则少),最后匹配到多个空字串 //字符串去重
// var reg = /(\w)\1*/g;
/* str.replace(reg, "$1");
*/ //2014百度题:将表示金额的字符串替换成:100.000.000的形式;
//var reg = /(?=(\B)(\d{3})+$)/g; 匹配出:\d{3}+ 以3为个数的倍数的一个或多个数字
// $ 结尾的
// \B 非单词边界 防止出现.100.000.000
// ?=n 紧跟
//组合成:匹配 紧跟 以3为个数的倍数的一个或多个数字结尾的 且是 非单词边界的 空字符串
//str.replace(reg, "."); </script>
</body>
</html>

参考文档注释中有,就是W3CSchool的官方文档,感兴趣的朋友可以测一测玩玩,感受一哈RegExp的强大,最后一个百度面试题当时号称史上最难,我没测出来,希望了解的朋友提点一下我,谢谢了...

关于RegExp的一些使用的练习(代码加注释)的更多相关文章

  1. Sublime Text对Python代码加注释的快捷键

    一直在Coursera上补基础课,发现很多课程都用Python作为教学语言,学了一下感觉果然好,简直是用英语在写代码.(我建Python目录的时候发现去年学过一点点Python,居然一点都不记得了= ...

  2. python代码加注释--6

    备注:#用来注释代码,#后面的内容会被python解释器忽略

  3. C#各种文件操作的代码与注释

    C#各种文件操作的代码与注释,具体看下面代码: using System; using System.Collections.Generic; using System.Linq; using Sys ...

  4. python学习之——计算给出代码中注释、代码、空行的行数

    题目:计算给出代码中注释.代码.空行的行数 来源:网络 思路:注释行以 ‘#’开头,空行以 ‘\n’ 开头,以此作为判断 def count_linenum(fname): fobj = open(f ...

  5. 第三次阅读赵炯博士的《linux内核代码完全注释》:序

    这是我第三次阅读linux内核代码完全注释了,当然前两次也没有读完,第一次读到第五章,第二次第七章. 所以说,赵炯博士对我最大的帮助时介绍了intel386的结构,以及内核编程的方法. 至于真正的内核 ...

  6. 教你怎么用Mono Cecil - 动态注入 (注意代码的注释)

    原文 教你怎么用Mono Cecil - 动态注入 (注意代码的注释) 使用 Mono Cecil 进行反编译:using Mono.Cecil; using Mono.Cecil.Cil; //.. ...

  7. 打开地图文件和shape文件代码加载Mxd文档

    代码加载Mxd文档 用代码添加Mxd文档,用到AxMapControl.LoadMxFile(sFilePath),我们只要将Mxd文档的路径传给这个方法即可 /// <summary>  ...

  8. 【转载】一行代码加载网络图片到ImageView——Android Picasso

    原文链接:一句代码加载网络图片到ImageView——Android Picasso  注意:此处使用下面代码需要先配置一下gradle,下载所需包. 具体操作如下图: compile 'com.sq ...

  9. Sublime Text 代码块注释

    插件:Doc​Blockr /*回车:创建一个代码块注释 /**回车:在自动查找函数中的形参等等.

随机推荐

  1. C++之log4cpp库的使用

    log4..简介 log4..是基于log4j的一系列的c++移植版本,使用了log4j的模式结构,目前主要有以下几个版本: 1. log4cxx, 目前是到0.10.0版,Apache下的孵化项目, ...

  2. 选择合适的innodb_log_file_size

    如果对 Innodb 数据表有大量的写入操作,那么选择合适的 innodb_log_file_size 值对提升MySQL性能很重要.然而设置太大了,就会增加恢复的时间,因此在MySQL崩溃或者突然断 ...

  3. CSS3:CSS 参考手册

    ylbtech-CSS:CSS 参考手册 1.返回顶部 1. W3School 的 CSS 参考手册定期通过所有主流浏览器进行测试. CSS 属性 CSS 属性组: 动画 背景 边框和轮廓 盒(框) ...

  4. ASP.NET Web应用程序修改页面Inherits示例

    <@page 中 Codebehind .Inherits 和aspx的关系 CodeBehind 指定包含与页关联的类的已编译文件的名称.该属性不能在运行时使用. 说明: 提供此属性是为了与以 ...

  5. cocos2d-x2.2+win7+vs2010+python安装配置

    个人网站http://www.ravedonut.com/ 1.安装vs2010 2.解压cocos2d-x,打开cocos2d-win32.vc2012.sln,编译,然后运行Hellocpp成功即 ...

  6. 1 python----pycharm本地部署spark

    下图相关工具连接 链接:https://pan.baidu.com/s/115XWf_Fc1yMiJytKJQXnFQ   密码:3jvr 好了,加油哟!

  7. PHP文件操作功能函数大全

    PHP文件操作功能函数大全 <?php /* 转换字节大小 */ function transByte($size){ $arr=array("B","KB&quo ...

  8. 《剑指offer》面试题15—输出链表中倒数第n个结点

    题目:如题,且从1开始计数. 思路:要求只遍历一遍链表:设置两个指针,一个先走n步后另一个开始同步后移,当快指针已经到链表尾时慢指针正好到要输出的结点. 注意:本题思路比较好想到,主要考察的是代码的鲁 ...

  9. css之BFC(block formmatting context)[格式化上下文]

    一.定义: BFC就是一个黑盒子,可以保证盒子内部元素不管如何变化,都不会影响盒子附近的元素:它属于普通流.浮动.定位方案中的普通流. 二.触发条件: 1.body: 2.float(不包含none) ...

  10. Unity3D脚本:更改脚本和类名,且不破坏现有脚本引用的方法

    Unity开发过程中,难免遇到需要修改类名(以及对应脚本名)的时候,但如果草率地在MonoDevelop里把类名直接改掉,会破坏现有场景以 及Project Assets中所有引用该脚本的链接,届时还 ...