在JavaScript中,正则表达式是一种非常强大的工具,用于处理字符串模式匹配、搜索以及替换等操作。通过使用正则表达式,开发人员可以更高效地完成数据验证、文本解析等多种任务。下面,我们将深入探讨一些在JavaScript中常用的正则表达式及其应用场景。 ### 1. 匹配中文字符 ``` [\u4e00-\u9fa5] ``` 这个正则表达式用于匹配任何中文字符。Unicode编码中的`[\u4e00-\u9fa5]`区间涵盖了绝大多数现代中文字符,因此在处理中文文本时,这是一个非常实用的模式。 ### 2. 邮件地址验证 ``` \w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)* ``` 此正则表达式用于验证电子邮件地址是否符合标准格式。它检查电子邮件地址的基本结构,包括本地部分(通常由字母数字字符组成,允许包含破折号、加号或句点)和域名部分(由一个或多个子域组成,子域间用点分隔)。这在用户输入验证中非常常见。 ### 3. URL格式匹配 ``` http://([\w-]+\.)+[\w-]+(/[\w-./?%&=]*)? ``` 该表达式用于检测字符串是否符合URL的标准格式。它主要检查URL是否以“http://”开头,后面跟着一个或多个由字母数字字符和短划线组成的子域,最后是顶级域名,可能还跟随着路径、查询参数等。 ### 4. 字符串去重 ```javascript let s = "abacabefgeeii"; let s1 = s.replace(/(.).*\1/g, "$1"); let re = new RegExp("[" + s1 + "]", "g"); let s2 = s.replace(re, ""); console.log(s1 + s2); // 结果为abcefgi ``` 这段代码展示了如何使用正则表达式去除字符串中的重复字符。它找到字符串中的所有不重复字符,然后创建一个新的正则表达式,用以从原字符串中移除这些字符的多余实例。 ### 5. 提取URL中的页面名称 ```javascript let s = "http://www.9499.net/page1.htm"; s = s.replace(/(.*\/){0,}([^\.]+).*/, "$2"); console.log(s); // 输出"page1" ``` 这个例子中,正则表达式用于从完整的URL中提取页面名称。它忽略了URL的协议和子域名部分,仅保留了页面名。 ### 6. 文本框输入限制 为了确保用户输入符合特定格式,如仅允许输入中文、全角字符或数字,可以使用以下正则表达式: - **仅限中文:** ```javascript onkeyup="value=value.replace(/[^\u4E00-\u9FA5]/g,'')" ``` - **仅限全角字符:** ```javascript onkeyup="value=value.replace(/[^\uFF00-\uFFFF]/g,'')" ``` - **仅限数字:** ```javascript onkeyup="value=value.replace(/[^\d]/g,'')" ``` - **仅限英文和数字:** ```javascript onkeyup="value=value.replace(/[\W]/g,'')" ``` 以上表达式可以在文本框的`onkeyup`事件中使用,实时过滤掉不符合规则的输入。 ### 7. 数字验证 我们来看看几个常用的数字验证正则表达式: - **匹配任意非负整数:** ``` /^\d+$/ ``` - **匹配任意非零数字:** ``` /^[0-9]*[1-9][0-9]*/ ``` - **匹配任意整数:** ``` /^-?[0-9]+$/ ``` - **匹配任意非负小数:** ``` /^\d+(\.\d+)?$/ ``` - **匹配任意浮点数:** ``` /^-?([0-9]+(\.[0-9]+)?)$/ ``` 这些表达式可用于验证用户输入的数值是否符合预期的格式。 正则表达式是JavaScript编程中不可或缺的一部分,掌握其基本语法和常见模式对于提高代码效率和准确性至关重要。通过合理运用上述介绍的各种正则表达式,开发人员能够更加灵活和高效地处理各种字符串操作需求。
用JavaScript,匹配中文字符的正则表达式如下:
[\u4e00-\u9fa5]
匹配Email地址的正则表达式:\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*
匹配网址URL的正则表达式:http://([\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)?
利用正则表达式去除字串中重复的字符的算法程序:[注:此程序不正确,原因见本贴回复]
var s="abacabefgeeii"
var s1=s.replace(/(.).*\1/g,"$1")
var re=new RegExp("["+s1+"]","g")
var s2=s.replace(re,"")
alert(s1+s2) //结果为:abcefgi
我原来在CSDN上发贴寻求一个表达式来实现去除重复字符的方法,最终没有找到,这是我能想到的最简单的实现方法。思路是使用后向引用取出包括重复的字符,再以重复的字符建立第二个表达式,取到不重复的字符,两者串连。这个方法对于字符顺序有要求的字符串可能不适用。
得用正则表达式从URL地址中提取文件名的javascript程序,如下结果为page1
s="http://www.9499.net/page1.htm"
s=s.replace(/(.*\/){0,}([^\.]+).*/ig,"$2")
alert(s)
利用正则表达式限制网页表单里的文本框输入内容:
用正则表达式限制只能输入中文:onkeyup="value=value.replace(/[^\u4E00-\u9FA5]/g,'')" onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\u4E00-\u9FA5]/g,''))"
用正则表达式限制只能输入全角字符:onkeyup="value=value.replace(/[^\uFF00-\uFFFF]/g,'')" onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\uFF00-\uFFFF]/g,''))"
- 粉丝: 0
- 资源: 1
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助