导读:其实,我不像大家一样,从一开始就重视着正则表达式,我甚至都觉得好浪费时间浪费精力,都没用的。因为,如果我要判断是不是为数字,我可以使用Numberic()方法,如果要去空格的话,使用trim()不就好了嘛。我干嘛还非得写正则呢?但是,后来就发现,自己的认识真的很有问题。(测试时,均使用的ASP.NET)

 一、去空格

1.1,使用trim()方法

有时候在输入的时候,会不小心的输入空格,每次都要重新返回去输入,特别麻烦。我就想能不能将我输入的所有空格都去除掉。当我使用TextBox2.Text = TextBox1.Text.Trim();去进行测试时,结果跟我想的很有出入。请看结果:

说明:我想要的实现是,将文本中所有的空格都去除,也就是说预期的第二个文本框的内容应该是:我在测试!结果却和预期结果有出入。当我在感叹号后再加入两个空格,通过文本的长度去测试是否去除空格时,结果是:

说明:这时候返现长度减少了4,也就是成功的去除掉了行前和行后的空格。由此可见,使用trim()方法去除空格,无法达到自己的效果。这时再来看使用正则的效果:

1.2,使用正则表达式

<span style="font-size:18px;"><span style="font-size:24px;"><span style="font-family:KaiTi_GB2312;font-size:24px;">            string str1 = TextBox1.Text;
Label1.Text = "第一个文本框的文本长度是:" + str1.Length;
string str2 = Regex.Replace(str1, @"\s", "");
TextBox2.Text = str2;
Label2.Text = "第二个文本框的文本长度是:" + str2.Length;</span></span></span>

说明:使用正则,则是清除了所有的空格,也就是达到了我的预期目的。但在进行这个测试的过程中,我发现了可以直接用字符串的replace()方法直接将其空格替换掉。所以说,虽然正则有很大的灵活性,但也不是最佳选择,是否使用正则,应视情况而定。

二、验证控件VS正则

在ASP.net中,使用验证控件也可以验证文本是否为空,是否为数字,是否为邮箱地址等。下面以邮箱为例进行说明:

2.1,使用正则表达式

<span style="font-size:18px;"><span style="font-size:24px;"><span style="font-family:KaiTi_GB2312;font-size:24px;"><body>
<form id="form1" runat="server">
<div style="margin-left: 320px">
邮箱:<asp:TextBox ID="txtMail" runat="server"></asp:TextBox>
      
<asp:RegularExpressionValidator ID="RegularExpressionValidator1" ForeColor="Red" runat="server" ErrorMessage="请正确输入邮箱地址!" ValidationExpression="\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*" ControlToValidate="txtMail"></asp:RegularExpressionValidator>
<asp:Button ID="Button1" runat="server" Text="测试" />
</div>
</form>
</body></span></span></span>

2.2,使用控件属性

在ASP.net中,验证控件都已经封装好了正则表达式,只需要在属性中进行设置就好了,不用自己再写。但就算是这样,其所谓的验证控件也是通过简单的正则表达式来进行组合封装的。

三、个人感受

根据自己所做的实例,正则表达式,比日常用的函数,或者控件,更有灵活性。也就是说,我们可以通过正则表达式,写出任意我们想匹配验证的客户端输入,它可以针对个人个性化的验证。从而根据匹配结果,反馈给客户具体的验证信息,增强其体验舒适度。

当然,要写出一个符合自己心意的正则表达式,则需要对其基础表达式,模式匹配符有一定熟悉度才行。所以接下来,我要做的工作就是,使用这一项看似简单的东西。在上篇博客中总结了正则的基本表达,很多很多,这些如果不去使用,压根就无法机械的记住。

【JavaScript 6—基础知识点】:正则表达式(应用)的更多相关文章

  1. JavaScript语言基础知识点图示(转)

    一位牛人归纳的JavaScript 语言基础知识点图示. 1.JavaScript 数据类型 2.JavaScript 变量 3.Javascript 运算符 4.JavaScript 数组 5.Ja ...

  2. JavaScript语言基础知识点图示

    原文:JavaScript语言基础知识点图示 一位牛人归纳的JavaScript 语言基础知识点图示. 1.JavaScript 数据类型 2.JavaScript 变量 3.Javascript 运 ...

  3. JavaScript 语言基础知识点总结

    网上找到的一份JavaScript 语言基础知识点总结,还不错,挺全面的. (来自:http://t.cn/zjbXMmi @刘巍峰 分享 )  

  4. JavaScript 语言基础知识点总结(思维导图)

    JavaScript 数组 JavaScript 函数基础 Javascript 运算符 JavaScript 流程控制 JavaScript 正则表达式 JavaScript 字符串函数 JavaS ...

  5. 【JavaScript 5—基础知识点】:正则表达式(笔记)

    一.总体概览 1.1,什么是正则 又称正规表示法.常规表示法(英语:Regular Expression,在代码中常简写为regex.regexp或RE),计算机科学的一个概念.正则表达式使用单个字符 ...

  6. 一套最全的JavaScript 语言基础知识点总结(思维导图10张)

    1.DOM基础操作 2.数组基础 3.函数基础 4.运算符 5.流程控制语句 6.正则表达式 7.字符串函数 8.数据类型 9.变量 10.window对象

  7. 【JavaScript 8—基础知识点】:DOM

    一.总体概述 1.1,什么是DOM DOM(Document Object Model):D(文档):整个web加载的网页文档:O(对象):类似于window对象之类的东西,可以调用属性和方法,在这里 ...

  8. 【JavaScript 7—基础知识点】:BOM

    一.基础知识 1.1,什么是BOM BOM(browser object model):也叫浏览器对象模型,它提供了很多对象,用于访问浏览器的功能.BOM缺少规范,每个浏览器提供商又按照自己想法去扩展 ...

  9. 【JavaScript 4—基础知识点】:函数

    导读:函数这个东西,从VB开始就一直在用,不过那时候一般写不出来自己的函数或者类,觉得最高大上的,就是调用API函数了.现在,学习到了JavaScript,总结总结函数,显得很有必要.这篇文章,就从最 ...

随机推荐

  1. LeetCode 100 及 101题

    100. 相同的树 给定两个二叉树,编写一个函数来检验它们是否相同. 如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的. 示例 1: 输入: 1 1 / \ / \ 2 3 2 3 [ ...

  2. MyBatis框架的XML数据访问Dao层接口的组合使用

    MyBatis 的前生为Apache的开源项目iBatis.其优势在于灵活,几乎可以替代JDBC,同时提供了编程接口.目前MyBatis的数据访问Dao层不需要实现类,也不需要像JDBC那样拼接Hql ...

  3. mongodb Gridfs操作

    GridFS 介绍 GridFS是MongoDB规范用于存储和检索大文件,如图片,音频文件,视频文件等.这是一种文件系统用来存储文件,但数据存储于MongoDB集合中.GridFS存储文件比其文档大小 ...

  4. main函数与命令行参数

    main函数的概念 C语言中main函数称之为主函数 一个c程序从main函数开始执行的 下面的main函数定义正确吗? main函数的本质 main函数是操作系统调用的函数 操作系统总是将main函 ...

  5. WebService学习之旅(五)基于Apache Axis2发布第一个WebService

    上篇博文介绍了如何將axis2 webservice引擎安装到Web容器中,本节开始介绍如何基于apache axis2发布第一个简单的WebService. 一.WebService服务端发布步骤 ...

  6. 对于HDMI设备连接状态的监听

    对与最近主要做的是电视机盒子端的开发,其中涉及到设备的状态监听比较繁琐,所以对HDMI的连接状态的监听方法做个记录,方便后续查看. 主要通过两种方式: (1)比较常用的广播监听 注册一个动态广播来获取 ...

  7. DrawerLayout Demo

    源码下载:http://download.csdn.net/detail/bx276626237/8882763

  8. iOS 多尺寸屏幕适配

    Point Point可以理解为iOS程序员眼中的大小单位.它是iOS操作系统中的抽象的概念. Rendered Pixels可以理解为UI设计师眼中的大小单位. Physical Pixels 设备 ...

  9. shell流程语句使用介绍

    1)使用if.case.read例子1:#!/bin/bash#读取终端输入的字符read -p "Please input a Number:" nn1=`echo $n|sed ...

  10. Android学习总结(三)——IntentService的用法

    一.IntentService的基本概念 IntentService是继承于Service并处理异步请求的一个类,在IntentService内有一个工作线程来处理耗时操作,启动IntentServi ...