正则表达式十分强大,几乎在所有框架中处处可以看到,下载框架源码仔细阅读肯定可以发现。在项目应用中也经常需要正则的帮助,举个栗子,我们常需要用到的表单验证输入。。。。其实还有很多,不一一道出,在这里我搜集了几个实例,一来可以丰富对使用正则这方面的知识,二来动手实践正则的应用有助于理解和加深印象。

(1)String类的Capitalize,实现首字母大写

 String.prototype.capitalize = function(){
return this.replace(/(^|\s)([a-z])/g,function(m,p1,p2){
console.log(m); //输出为正则匹配的子字符串
console.log(p1); //输出为分组1捕获的文本
console.log(p2); //输出为分组2捕获的文本
return p1+p2.toUpperCase();
})
}
console.log('i am a boy '.capitalize());

输出结果为:

  I Am A Boy

(2)给出一段有成绩的字符串,匹配出里面的分数,然后比较每一项和平均分的大小

 var s = "张三56分, 李四74分, 王五92分, 赵六84分";
var a = s.match(/\d+/g);
var avg = a.reduce(function(obj, item){ return obj + parseFloat(item);},0) / a.length;
var result = s.replace(/(\d+)分/g, function(){
console.log(arguments[0]);//XX分
console.log(arguments[1]);//XX
var n = parseFloat(arguments[1]); return n + "分" + "(" + ((n > avg) ? ("超出平均分" + (n - avg)) : ("低于平均分" + (avg - n))) + "分)";
});
console.log(result);

输出结果为:

  张三56分(低于平均分20.5分), 李四74分(低于平均分2.5分), 王五92分(超出平均分15.5分), 赵六84分(超出平均分7.5分)

(3)给出一段含有字符实体的字符串,转换为所表示的字符

 String.prototype.deentityify = function(){
var entity = {
quot : '"',
lt : '<',
gt : '>'
}; return function(){
return this.replace(/&([^&;]+);/g,function(a,b){
//console.log(a);输出匹配模式的字符串,如&lt;
//console.log(b);输出与模式中的子表达式匹配的字符串,如lt
var r = entity[b];
return typeof r === 'string' ? r : a;
});
};
}();
document.writeln('&lt;&quot;&gt;&aa;'.deentityify());

输出结果为:

  <">&aa;

  由于正则的应用实在太多了,不能将它们穷举出来,不过以后笔者会不断积累并且更新更多实例demo,好了,关于正则的总结就到这里,阿里嘎多~

正则表达式的实践demo的更多相关文章

  1. c#正则表达式最简demo

    各个语言的正则表达式规则略有不同 项目中用到,所以将这个最简单的demo记录 using System; using System.Collections.Generic; using System. ...

  2. 常用正则表达式和一些demo

    一.校验数字的表达式 数字:^[0-9]*$ n位的数字:^\d{n}$ 至少n位的数字:^\d{n,}$ m-n位的数字:^\d{m,n}$ 零和非零开头的数字:^(0|[1-9][0-9]*)$ ...

  3. DevOps - 从渐进式交付说起(含实践 Demo)

    作者:CODING - 王炜 1. 开篇 如果让你主导一款千万.甚至亿级用户产品的功能迭代,你会怎么做?你需要面对的挑战可能来自于: 商业战略的变化带来新的产品诉求,而产品的任何改动哪怕仅是界面调整, ...

  4. springboot+dubbo+zookeeper微服务实践demo

    微服务化越来越火,实际上是应互联网时代而生的,微服务化带来的不仅是性能上的提升,更带来了研发组织的更加便利,协作更加轻松,团队效能更高. 当然不能为了技术而技术,我们需要切合实际的对业务进行划分,降低 ...

  5. 遗传编程(GA,genetic programming)算法初探,以及用遗传编程自动生成符合题解的正则表达式的实践

    1. 遗传编程简介 0x1:什么是遗传编程算法,和传统机器学习算法有什么区别 传统上,我们接触的机器学习算法,都是被设计为解决某一个某一类问题的确定性算法.对于这些机器学习算法来说,唯一的灵活性体现在 ...

  6. linux 正则表达式与实践

    正则表达式基础 准备 (1)alias grep='grep --color=auto' 易于显示 (2)LC_ALL=C,字符集,设置环境变量,字符顺序 基础正则 1)^word  匹配以Word开 ...

  7. spring-aop思想实践demo

    需求: 例如我们需要有一个类中每个方法执行前都需要做一个权限校验,必须是有特定权限的账号才能完成该方法的操作. 解决方案: 1.使用父类继承方式,书写该类的父类,然后在父类中定义一个checkPri的 ...

  8. 单点登录的实践demo

    https://github.com/deadzq/web-sso-server 统一认证中心 https://github.com/deadzq/web-system-client1 用户客户端 结 ...

  9. 【重点突破】—— Vue2.0 transition 动画Demo实践填坑

    前言:vue1.0版本和2.0版本的过渡系统改变是很大的,具体请详看文档介绍.本文转载自郭锦荣的博客,一共列举了四种transition的使用实践,分别是css过渡.css动画.javascript钩 ...

随机推荐

  1. ubuntu17安装以及相关问题的解决

    .ssh的安装和配置 sudo apt-get update sudo apt-get install openssh-server 查看ssh服务是否启动 打开"终端窗口",输入 ...

  2. ajax(Asynchronous JavaScript and XML) 异步js或者xml

    1.XMLHttpRequest 对象:向服务器发送局部的请求,异步获取执行 a.浏览器支持 b.语法: xmlhttp==new XMLHttpRequest(); xmlhttp.open(&qu ...

  3. elasticsearch head 连接不到elasticsearch

    配置好head后看到没有正常连接到elasticsearch.  重启后效果:

  4. 移动端适配1px问题

    (function(document) { var dcl = document.documentElement, wh; var scale = 1/window.devicePixelRatio; ...

  5. su切换用户报错cannot set user id: Resource temporarily unavailable

    su: cannot set user id: 资源暂时不可用   登录root su - tomcat 报错: cannot set user id: Resource temporarily un ...

  6. React笔记:ref注意事项

    [一]使用ref必须用在[类型式的组件]才起作用,用在[函数式的组件]是无效的. 下面这个例子用在了[函数式的组件]上,所以是无效的: function MyFunctionalComponent() ...

  7. 【算法笔记】B1001 害死人不偿命的(3n+1)猜想

    1001 害死人不偿命的(3n+1)猜想 (15 分)卡拉兹(Callatz)猜想: 对任何一个正整数 n,如果它是偶数,那么把它砍掉一半:如果它是奇数,那么把 (3n+1) 砍掉一半.这样一直反复砍 ...

  8. 如何写javascript代码隐藏和显示这个div

    如何写javascript代码隐藏和显示这个div 浏览次数:82次悬赏分:10 | 解决时间:2011-4-21 14:41 | 提问者:hade_girl <div id="div ...

  9. c#和java的深拷贝CloneObject

    public static T Clone<T>(this T source) { if (!typeof(T).IsSerializable) { throw new ArgumentE ...

  10. Oracle:DBMS_STATS.GATHER_TABLE_STATS的语法

    转自: http://cjjwzs.iteye.com/blog/1143893 作用:DBMS_STATS.GATHER_TABLE_STATS统计表,列,索引的统计信息. DBMS_STATS.G ...