`
zhangfeiii
  • 浏览: 44582 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

配匹中文及全角符号

阅读更多
[\\u0391-\\uFFE5]匹配双字节字符(汉字+符号)

[\\u4e00-\\u9fa5]注意只匹配汉字,不匹配双字节字符


比如[\\u4e00-\\u9fa5]只匹配我们看到的汉字,不匹配全角状态下输入的符号!? []等等

[\\u0391-\\uFFE5]就匹配双字节字符

汉字就是双字节字符,全角符号也是双字节字符


用正则表达式限制只能输入中文:onkeyup="value=value.replace(/[^\u4E00-\u9FA5]/g,'')" onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\u4E00-\u9FA5]/g,''))"

1.用正则表达式限制只能输入全角字符: onkeyup="value=value.replace(/[^\uFF00-\uFFFF]/g,'')" onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\uFF00-\uFFFF]/g,''))"

2.用正则表达式限制只能输入数字:onkeyup="value=value.replace(/[^\d]/g,'') "onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\d]/g,''))"

3.用正则表达式限制只能输入数字和英文:onkeyup="value=value.replace(/[\W]/g,'') "onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\d]/g,''))"

4.计算字符串的长度(一个双字节字符长度计2,ASCII字符计1)

String.prototype.len=function(){return this.replace([^\x00-\xff]/g,"aa").length;}

5.javascript中没有像vbscript那样的trim函数,我们就可以利用这个表达式来实现,如下:

String.prototype.trim = function()
{
return this.replace(/(^\s*)|(\s*$)/g, "");
}

利用正则表达式分解和转换IP地址:

6.下面是利用正则表达式匹配IP地址,并将IP地址转换成对应数值的Javascript程序:

function IP2V(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("不是一个正确的IP地址!")
}
}

不过上面的程序如果不用正则表达式,而直接用split函数来分解可能更简单,程序如下:

var ip="10.100.20.168"
ip=ip.split(".")
alert("IP值是:"+(ip[0]*255*255*255+ip[1]*255*255+ip[2]*255+ip[3]*1))
正则表达式用于字符串处理、表单验证等场合,实用高效。现将一些常用的表达式收集于此,以备不时之需。


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

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

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

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

匹配首尾空白字符的正则表达式:^\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个英文字母或者下划线组成的字符串
评注:最基本也是最常用的一些表达式

匹配中文字符的正则表达式: [\u4e00-\u9fa5]

匹配双字节字符(包括汉字在内):[^\x00-\xff]

匹配空行的正则表达式:\n[\s| ]*\r

匹配HTML标记的正则表达式:/<(.*)>.*<\/\1>|<(.*) \/>/ 

匹配首尾空格的正则表达式:(^\s*)|(\s*$)

匹配Email地址的正则表达式:\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*

匹配网址URL的正则表达式:http://([\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)?


^\d+$  //匹配非负整数(正整数 + 0) 
^[0-9]*[1-9][0-9]*$  //匹配正整数 
^((-\d+)|(0+))$  //匹配非正整数(负整数 + 0) 
^-[0-9]*[1-9][0-9]*$  //匹配负整数 
^-?\d+$    //匹配整数 
^\d+(\.\d+)?$  //匹配非负浮点数(正浮点数 + 0) 
^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$  //匹配正浮点数 
^((-\d+(\.\d+)?)|(0+(\.0+)?))$  //匹配非正浮点数(负浮点数 + 0) 
^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$  //匹配负浮点数 
^(-?\d+)(\.\d+)?$  //匹配浮点数 
^[A-Za-z]+$  //匹配由26个英文字母组成的字符串 
^[A-Z]+$  //匹配由26个英文字母的大写组成的字符串 
^[a-z]+$  //匹配由26个英文字母的小写组成的字符串 
^[A-Za-z0-9]+$  //匹配由数字和26个英文字母组成的字符串 
^\w+$  //匹配由数字、26个英文字母或者下划线组成的字符串 
^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$   
分享到:
评论

相关推荐

    JS检测中文和全角符号JS代码

    给定的代码示例中使用了正则表达式来检测输入文本中是否包含中文字符或全角符号。 #### 1.1 正则表达式的语法 正则表达式的定义使用斜杠 `/` 来包裹具体的模式字符串,例如 `/pattern/`。在给定的示例中,正则...

    C++全角半角字符转换

    C++全角半角字符转换

    DELPIH 全角转成半角

    在简体中文环境中,全角字符通常用于汉字,每个全角字符占用两个字节,并且在屏幕上占一个全宽位置。而半角字符,如英文和数字,每个占用一个字节,且在屏幕上的宽度仅为全角字符的一半。 在DELPHI编程中,处理这种...

    半角与全角字符的转换

    在中文字符处理中,半角(SBC)与全角(DBC)字符转换是一个常见的需求。本文将详细介绍半角与全角字符的基本概念、特点以及如何进行相互转换。 #### 半角与全角字符的概念 1. **半角字符**:通常指的是ASCII码中...

    中文符号转E文符号

    在IT领域,中文符号转E文符号(通常指的是中文全角符号转为英文半角符号)是一项常见的文本处理任务,特别是在处理编程代码、数据库输入、文本格式统一等场景时。这是因为英文半角符号在计算机系统中更为通用,尤其...

    正则表达式判断是否存在中文和全角字符和判断包含中文字符串长度

    ### 正则表达式判断是否存在中文和全角字符 在处理文本数据时,尤其是在需要确保数据安全性与准确性的场合下,判断字符串中是否含有中文字符或全角字符是非常重要的。以下是一些关键知识点: #### 1. 正则表达式...

    YY设计符号(半角字母数字转全角、常用特殊符号)

    《全面解析YY设计符号工具:从半角到全角,特殊符号一网打尽》 在数字时代,网络社交平台的个性化表达日益丰富,尤其是在YY这样的语音聊天平台中,马甲设计与频道布置成为了用户展示个性的重要方式。为了帮助用户在...

    全角字符的检查

    如何判断你在C语言程序中是否输入的是汉字

    pb全角转半角

    在中文输入法中,全角字符常用于汉字和一些特殊符号,而半角字符则用于英文和数字等。 全角转半角的过程主要涉及字符编码的转换,这是因为全角字符在Unicode或GB2312等编码体系中使用,而半角字符在ASCII编码中使用...

    日文全角半角转化

    "日文全角半角转化" 日文全角半角转换是指将日文中的全角字符转换为半角字符或将半角字符转换为全角字符的过程。在计算机编程中,日文全角半角转换是非常重要的一步,因为它可以确保日文字符的正确显示和处理。 在...

    VS2005全角补丁

    【VS2005全角补丁】是一个针对微软Visual Studio 2005开发环境的更新,旨在解决中文输入时可能出现的全角字符显示和处理问题。在编程过程中,尤其是处理中文字符串时,全角字符(全宽度字符)与半角字符(半宽度字符...

    VB.net 汉字拼音码转换 (支持简繁体汉字、全角数字字母)

    VB.net 汉字拼音码转换 (支持简繁体汉字、全角数字字母) 嗯! 写了个转换字符的类,汉字(简繁体)转换拼音首字母编码 包括:全角字母数字转换。输入:任意字符串, 输出:字母加数字。 PyZm(ByVal Str As String...

    全角和半角的区别.docx

    全角是指一个字符占用两个标准字符位置,包括汉字字符、规定的英文字符及国标GB2312-80中的图形符号和特殊字符。半角是指一个字符占用一个标准的字符位置,包括英文字母、数字键、符号键等。 全角和半角的主要区别...

    字符串,标点符号全角半角转换

    在IT领域,特别是编程与文本处理中,全角与半角字符的转换是一个常见的需求,尤其是在东亚语言环境中,如中文、日文、韩文中。全角(Full Width)与半角(Half Width)字符的区别主要在于宽度和编码上。半角字符通常...

    全角转半角,半角转全角,判断字符是否为全角

    根据给定文件的信息,本文将详细介绍“全角转半角”、“半角转全角”以及如何判断一个字符是否为全角的相关知识点。 ### 一、全角与半角的基本概念 在计算机处理中文文本时,经常会遇到全角(Full Width Character...

    C# 半角全角字符转换函数

    需要注意的是,这两个函数只处理了ASCII字符和全角中文字符之间的转换,对于其他语言或特殊字符集的字符,可能无法正确转换。在实际应用中,如果涉及到多种字符集的混合,可能需要使用更复杂的转换机制,如Unicode...

    解决全角与半角问题

    全角字符在简体中文Windows系统中通常用于汉字和部分标点符号,每个字符占用两个字节,宽度相当于两个半角字符;而半角字符(通常是英文、数字和部分标点)占用一个字节,宽度为一个字符单元。 在描述中提到的“VS...

    字符串的全角半角转换 java

    全角字符(全宽度字符)通常用于东亚语言,如中文、日文、韩文等,每个字符占用两个字节。而半角字符(半宽度字符)则主要是一些英文、数字和ASCII符号,每个字符占用一个字节。 标题“字符串的全角半角转换 java”...

    c#文本中全角转半角

    在中文环境下,全角字符通常用于中文字符、数字和标点符号,而半角字符则用于英文字符、数字和标点符号。在编码中,全角字符占用两个字节的空间,而半角字符仅占用一个字节的空间。 - **全角空格**:其Unicode编码...

    输入法全角补丁

    全角字符在中文输入法中占据两个字节的空间,通常用于汉字、标点符号等,而半角字符则占用一个字节,适用于英文、数字和部分标点。在某些软件或操作系统中,用户可能会遇到输入法突然变为全角状态,导致输入的英文...

Global site tag (gtag.js) - Google Analytics