`
maria3905
  • 浏览: 22781 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

js常见正则表达式,通用性较高的

    博客分类:
  • js
 
阅读更多

匹配中文字符的正则表达式: [u4e00-u9fa5]
评注:匹配中文还真是个头疼的事,有了这个表达式就好办了

匹配双字节字符(包括汉字在内):[^x00-xff]
评注:可以用来计算字符串的长度(一个双字节字符长度计2,ASCII字符计1)

匹配空白行的正则表达式:ns*r
评注:可以用来删除空白行

匹配HTML标记的正则表达式:< (S*?)[^>]*>.*?|< .*? />
评注:网上流传的版本太糟糕,上面这个也仅仅能匹配部分,对于复杂的嵌套标记依旧无能为力

匹配首尾空白字符的正则表达式:^s*|s*$
评注:可以用来删除行首行尾的空白字符(包括空格、制表符、换页符等等),非常有用的表达式

匹配Email地址的正则表达式:w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*
评注:表单验证时很实用

匹配网址URL的正则表达式:[a-zA-z]+://[^s]*
评注:网上流传的版本功能很有限,上面这个基本可以满足需求

匹配帐号是否合法(字母开头,允许5-16字节,允许字母数字下划线):^[a-zA-Z][a-zA-Z0-9_]{4,15}$
评注:表单验证时很实用

匹配国内电话号码:d{3}-d{8}|d{4}-d{7}
评注:匹配形式如 0511-4405222 或 021-87888822

匹配腾讯QQ号:[1-9][0-9]{4,}
评注:腾讯QQ号从10000开始

匹配中国邮政编码:[1-9]d{5}(?!d)
评注:中国邮政编码为6位数字

匹配身份证:d{15}|d{18}
评注:中国的身份证为15位或18位

匹配ip地址:d+.d+.d+.d+
评注:提取ip地址时有用


匹配特定数字:
^[1-9]d*$    //匹配正整数
^-[1-9]d*$   //匹配负整数
^-?[1-9]d*$   //匹配整数
^[1-9]d*|0$  //匹配非负整数(正整数 + 0)
^-[1-9]d*|0$   //匹配非正整数(负整数 + 0)
^[1-9]d*.d*|0.d*[1-9]d*$   //匹配正浮点数
^-([1-9]d*.d*|0.d*[1-9]d*)$  //匹配负浮点数
^-?([1-9]d*.d*|0.d*[1-9]d*|0?.0+|0)$  //匹配浮点数
^[1-9]d*.d*|0.d*[1-9]d*|0?.0+|0$   //匹配非负浮点数(正浮点数 + 0)
^(-([1-9]d*.d*|0.d*[1-9]d*))|0?.0+|0$  //匹配非正浮点数(负浮点数 + 0)
评注:处理大量数据时有用,具体应用时注意修正

匹配特定字符串:
^[A-Za-z]+$  //匹配由26个英文字母组成的字符串
^[A-Z]+$  //匹配由26个英文字母的大写组成的字符串
^[a-z]+$  //匹配由26个英文字母的小写组成的字符串
^[A-Za-z0-9]+$  //匹配由数字和26个英文字母组成的字符串
^w+$  //匹配由数字、26个英文字母或者下划线组成的字符串

在使用RegularExpressionValidator验证控件时的验证功能及其验证表达式介绍如下:
只能输入数字:“^[0-9]*$”
只能输入n位的数字:“^d{n}$”
只能输入至少n位数字:“^d{n,}$”
只能输入m-n位的数字:“^d{m,n}$”
只能输入零和非零开头的数字:“^(0|[1-9][0-9]*)$”
只能输入有两位小数的正实数:“^[0-9]+(.[0-9]{2})?$”
只能输入有1-3位小数的正实数:“^[0-9]+(.[0-9]{1,3})?$”
只能输入非零的正整数:“^+?[1-9][0-9]*$”
只能输入非零的负整数:“^-[1-9][0-9]*$”
只能输入长度为3的字符:“^.{3}$”
只能输入由26个英文字母组成的字符串:“^[A-Za-z]+$”
只能输入由26个大写英文字母组成的字符串:“^[A-Z]+$”
只能输入由26个小写英文字母组成的字符串:“^[a-z]+$”
只能输入由数字和26个英文字母组成的字符串:“^[A-Za-z0-9]+$”
只能输入由数字、26个英文字母或者下划线组成的字符串:“^w+$”
验证用户密码:“^[a-zA-Z]w{5,17}$”正确格式为:以字母开头,长度在6-18之间,


只能包含字符、数字和下划线。
验证是否含有^%&',;=?$"等字符:“[^%&',;=?$x22]+”
只能输入汉字:“^[u4e00-u9fa5],{0,}$”
验证Email地址:“^w+[-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*$”
验证InternetURL:“^http://([w-]+.)+[w-]+(/[w-./?%&=]*)?$”
验证电话号码:“^((d{3,4})|d{3,4}-)?d{7,8}$”


正确格式为:“XXXX-XXXXXXX”,“XXXX-XXXXXXXX”,“XXX-XXXXXXX”,


“XXX-XXXXXXXX”,“XXXXXXX”,“XXXXXXXX”。
验证身份证号(15位或18位数字):“^d{15}|d{}18$”
验证一年的12个月:“^(0?[1-9]|1[0-2])$”正确格式为:“01”-“09”和“1”“12”
验证一个月的31天:“^((0?[1-9])|((1|2)[0-9])|30|31)$”


正确格式为:“01”“09”和“1”“31”。


匹配中文字符的正则表达式: [u4e00-u9fa5]
匹配双字节字符(包括汉字在内):[^x00-xff]
匹配空行的正则表达式:n[s| ]*r
匹配HTML标记的正则表达式:/< (.*)>.*|< (.*) />/
匹配首尾空格的正则表达式:(^s*)|(s*$)
匹配Email地址的正则表达式:w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*
匹配网址URL的正则表达式:http://([w-]+.)+[w-]+(/[w- ./?%&=]*)?

(1)应用:计算字符串的长度(一个双字节字符长度计2,ASCII字符计1)
String.prototype.len=function(){return this.replace([^x00-xff]/g,"aa").length;}

(2)应用:javascript中没有像vbscript那样的trim函数,我们就可以利用这个表达式来实现
String.prototype.trim = function()
{
return this.replace(/(^s*)|(s*$)/g, "");
}
(3)应用:利用正则表达式分解和转换IP地址
function IP2V(ip) //IP地址转换成对应数值
{
re=/(d+).(d+).(d+).(d+)/g //匹配IP地址的正则表达式
if(re.test(ip))
{
return RegExp.$1*Math.pow(255,3))+RegExp.$2*Math.pow(255,2))+RegExp.$3*255+RegExp.$4*1
}
else
{
throw new Error("Not a valid IP address!")
}
}
(4)应用:从URL地址中提取文件名的javascript程序
s="http://www.jb51.net/page1.htm";
s=s.replace(/(.*/){0,}([^.]+).*/ig,"$2") ; //Page1.htm
(5)应用:利用正则表达式限制网页表单里的文本框输入内容
用 正则表达式限制只能输入中文:onkeyup="value="/blog/value.replace(/["^u4E00-u9FA5]/g,'') " onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^u4E00-u9FA5]/g,''))"
用正则表达式限制只能输入全角字符: onkeyup="value="/blog/value.replace(/["^uFF00-uFFFF]/g,'') " onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^uFF00-uFFFF]/g,''))"
用正则表达式限制只能输入数字:onkeyup="value="/blog/value.replace(/["^d]/g,'') "onbeforepaste= "clipboardData.setData('text',clipboardData.getData('text').replace(/[^d]/g,''))"
用正则表达式限制只能输入数字和英文:onkeyup="value="/blog/value.replace(/[W]/g,"'') "onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^d]/g,''

分享到:
评论

相关推荐

    浅谈正则表达式(Regular Expression)

    正则表达式的强大之处在于它的通用性和灵活性,几乎所有的现代编程语言都支持正则表达式,这就意味着一旦掌握,就可以在各种不同的环境和上下文中使用它来处理文本数据。无论是简单的文本替换,还是复杂的文本提取和...

    javascript 返回数组中不重复的元素

    - 多重循环导致时间复杂度较高,特别是在大型数组中。 - 可能需要多次调用`splice`方法,这在某些情况下会影响性能。 #### 方法四:使用Map对象 最后介绍一种较为现代的方法,即使用ES6中的`Map`对象来去重。这种...

    javaScript动态随即生成UUID

    `Math.uuidCompact`函数采用模板字符串和正则表达式进行替换的方式生成UUID,其内部使用`Math.random()`生成随机数,并根据位的位置和类型进行相应的处理,最终返回一个格式化的UUID字符串。 ### 总结 通过以上...

    ASP替换、保存远程图片实现代码

    尽管代码能够实现基本功能,但代码的复杂度较高,且没有考虑到对单个图片上传失败的容错处理。例如,一个远程图片下载失败时,函数应能够处理异常并告知用户哪个文件出现问题。代码可能还需要对非标准或异常格式的...

    强大的Python--完全用Python工作 (2).pdf

    1. **C/C++**: C语言对内存管理要求较高,需要程序员手动处理指针和内存分配,而C++虽然提供了面向对象编程,但学习曲线陡峭,Python则通过自动垃圾回收机制简化了这些复杂性。 2. **Java**: Java虽然具有面向对象...

    浅析MongoDB-PPT

    正则表达式在MongoDB中也得到支持,使用Perl兼容的正则表达式库(PCRE),但应谨慎使用,确保在执行前在JavaScript shell中验证其正确性。 游标是MongoDB查询结果的迭代器,可以使用`.limit()`, `.skip()`和`.sort...

    强大的Python 完全用Python工作.docx

    6. **Perl**:Perl的正则表达式强大,但Python在可读性和现代编程范式方面更胜一筹。 7. **C#,PHP,JavaScript**:这些语言在特定领域有其优势,但Python的跨平台性和通用性使其在多种场景下都具备竞争力。 8. **...

    强大的python完全用python工作精编WORD版.pdf

    Perl的正则表达式使用频繁,不易阅读;C#、PHP和JavaScript在某些方面可能不如Python全面或便捷;Shell更适合系统管理,而非复杂的编程任务;Matlab虽然在科学计算中有用,但高昂的费用、庞大的安装包以及专有的语法...

    深度剖析使用python抓取网页正文的

    这个过程可以通过正则表达式完成,如`remove_js_css`函数所示,它使用正则表达式匹配并移除这些标签内的内容。接着,使用`remove_empty_line`函数删除多余的空行,以简化文本结构。 接下来,我们计算每个行的文本...

    Tool

    查找和替换功能支持正则表达式,提高了搜索和替换的灵活性;它还可以通过插件管理系统增加更多的功能,如代码比较、FTP上传等。 总之,Notepad++作为一个强大的文本编辑器,因其开源、免费、功能丰富的特性,在IT...

    Javascript

    这些只是JavaScript基础知识的一部分,实际应用中还包括正则表达式、闭包、异步编程、模块化、性能优化等多个方面。JavaScript是一个庞大的生态系统,不断有新的特性被引入,如ES2022及其后的版本,持续推动着这门...

    javaWeb小结

    而C/S架构中,客户端与服务器端的耦合度较高,通常需要考虑客户端操作系统兼容性。 6. **视觉体验**:在某些场景下,如游戏领域,C/S架构可以提供比B/S架构更优质、更丰富的用户体验,尤其是在图形界面和性能方面。...

    Jedit42source

    8. **搜索与替换**: 支持正则表达式的全文搜索和替换,可以在整个项目或单个文件中进行快速查找和替换。 9. **多光标和多选**: 用户可以设置多个光标,同时编辑多处文本,提高编辑效率。 10. **自定义配置**: 用户...

    js实现字符串转日期格式的方法

    在JavaScript开发中,经常需要将字符串转换为日期格式,以方便进行日期时间的处理和展示。...如果对性能要求较高或者需要处理多种日期格式,可以考虑封装一个通用的日期转换函数来实现更灵活的日期字符串转换。

    js代码-深拷贝deepClone

    但需要注意的是,这种方法有局限性,不能处理函数、循环引用、日期、正则表达式等非基本类型的数据。 ```javascript function deepClone(obj) { return JSON.parse(JSON.stringify(obj)); } ``` 2. 循环遍历 通过...

    一个python爬虫基础知识、爬虫实例、反爬机制等资源.docx

    2. **聚焦网络爬虫**:与通用网络爬虫不同,聚焦网络爬虫更加专注于某一特定主题或领域的数据抓取,这种针对性的设计使得它们能够在较少的资源消耗下完成高质量的数据收集工作。 3. **增量式网络爬虫**:这类爬虫只...

    CI框架安全过滤函数示例

    - `fliter_script` 函数:这个函数用于过滤JavaScript、CSS、IFRAME、OBJECT等可能不安全的参数,过滤级别较高。它通过正则表达式替换来移除可能导致执行恶意脚本的代码。 - `fliter_html` 函数:此函数用于过滤...

Global site tag (gtag.js) - Google Analytics