导读:其实,我不像大家一样,从一开始就重视着正则表达式,我甚至都觉得好浪费时间浪费精力,都没用的。因为,如果我要判断是不是为数字,我可以使用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. kafka基础三

    消费者消费消息过程(一) 消费者组 消费者是以消费者组consumer group的方式进行消息消费的,一个消费者组是由一个或者多个消费者组成的,共同消费一个topic,在每个分区同一时间只能由消费者 ...

  2. android 常用第三方github工程

    这里有个汇总的网址:http://androidxy.com/zh/page/latest/-1/0 数据库:greenDao 参考:GreenDao3.2的使用 控件注解:Butterknife 图 ...

  3. 重置Mysql的root密码及用户权限设置

     一.重置Mysql的root密码 方法一: 直接进入localhost/phpmyadmin修改用户root的权限,设置密码: 方法二: 进入mysql控制台:mysql->use mysql ...

  4. Selenium私房菜系列9 -- Selenium RC服务器命令行参数列表【ZZ】

    本文转载自:http://wiki.javascud.org/display/SEL/Selenium+Remote+Control+-+options 使用示例: java -jar seleniu ...

  5. hihoCoder #1162 : 骨牌覆盖问题·三 (矩阵快速幂,DP)

    题意:有一个k*n的棋盘,要求用1*2的骨牌来铺满,有多少种方案?(k<8,n<100000001) 思路: 由于k是比较小,但是又不那么小,可以专门构造这样的一个矩阵M,使得只要我们有一 ...

  6. (四)mybatis之mybatis初了解

    前言:终于到mybatis啦!   Mybatis 前文有提到,Hibernate采用的是全表映射的方式,而这方式恰恰使得性能变得较差(https://www.cnblogs.com/NYfor201 ...

  7. java日期操作的工具类时间格式的转换

    package cn.itcast.oa.util; import java.text.ParseException; import java.text.SimpleDateFormat;import ...

  8. python_113_socket编程

    Socket语法及相关 socket概念 socket本质上就是在2台网络互通的电脑之间,架设一个通道,两台电脑通过这个通道来实现数据的互相传递. 我们知道网络 通信 都 是基于 ip+port 方能 ...

  9. CPP-基础:函数指针,指针函数,指针数组

    函数指针 函数指针是指向函数的指针变量. 因而“函数指针”本身首先应是指针变量,只不过该指针变量指向函数.这正如用指针变量可指向整型变量.字符型.数组一样,这里是指向函数.如前所述,C在编译时,每一个 ...

  10. nyoj-248-buying feed

    http://acm.nyist.net/JudgeOnline/problem.php?pid=248 BUYING FEED 时间限制:3000 ms  |  内存限制:65535 KB 难度:4 ...