【JavaScript 6—基础知识点】:正则表达式(应用)
2015-06-12 09:27
716 查看
导读:其实,我不像大家一样,从一开始就重视着正则表达式,我甚至都觉得好浪费时间浪费精力,都没用的。因为,如果我要判断是不是为数字,我可以使用Numberic()方法,如果要去空格的话,使用trim()不就好了嘛。我干嘛还非得写正则呢?但是,后来就发现,自己的认识真的很有问题。(测试时,均使用的ASP.NET)
![](https://oscdn.geek-share.com/Uploads/Images/Content/201506/9470fc93a059dfb3a4a5206d3307d789)
说明:我想要的实现是,将文本中所有的空格都去除,也就是说预期的第二个文本框的内容应该是:我在测试!结果却和预期结果有出入。当我在感叹号后再加入两个空格,通过文本的长度去测试是否去除空格时,结果是:
![](https://oscdn.geek-share.com/Uploads/Images/Content/201506/83c879f7f3ab690c2086e23be0904ba5)
说明:这时候返现长度减少了4,也就是成功的去除掉了行前和行后的空格。由此可见,使用trim()方法去除空格,无法达到自己的效果。这时再来看使用正则的效果:
![](https://oscdn.geek-share.com/Uploads/Images/Content/201506/660a53223cf7855f62b4f723506f968e)
说明:使用正则,则是清除了所有的空格,也就是达到了我的预期目的。但在进行这个测试的过程中,我发现了可以直接用字符串的replace()方法直接将其空格替换掉。所以说,虽然正则有很大的灵活性,但也不是最佳选择,是否使用正则,应视情况而定。
![](https://oscdn.geek-share.com/Uploads/Images/Content/201506/c7593288be33dd140d9cf7ab870e652b)
![](https://oscdn.geek-share.com/Uploads/Images/Content/201506/db75a9db158cb25cae1a4b9a62d05487)
当然,要写出一个符合自己心意的正则表达式,则需要对其基础表达式,模式匹配符有一定熟悉度才行。所以接下来,我要做的工作就是,使用这一项看似简单的东西。在上篇博客中总结了正则的基本表达,很多很多,这些如果不去使用,压根就无法机械的记住。
一、去空格
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—基础知识点】:正则表达式(应用)
- JavaScript中setUTCMilliseconds()方法的使用详解
- js正则表达式语法
- JavaScript中setUTCFullYear()方法的使用简介
- 正则表达式---JS
- JSTL function 标签 使用
- 盲目自信后的JavaScript沉淀
- json解析NSJSONSerialization方法
- 你真得懂Javascript中的==等于运算符吗?
- json解析使用第三方类库JSONKit
- jsp 使内容变成灰色 不可编辑
- jsp 获取当前页面时间 并对时间进行比较
- Encode_1
- Js_Js_js
- JavaScript中产生标识符方式的演变
- Test4002
- jsp页面显示文件内容有中文乱码问题
- 分享关于js解析URL中的参数的方法
- js弹出放大图
- jsp页面中,动态调用系统时间的实现