关键字: 配匹中文及全角符号 (此文转帖)
[\\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-]+)+$
分享到:
相关推荐
4. **匹配双字节字符** 双字节字符主要出现在Unicode编码中,特别是处理中文、日文、韩文等多字节字符集时。在JavaScript等语言中,可以使用正则表达式来匹配这些字符。例如: `\u0080-\uFFFF` 这个范围涵盖了基本...
2. 匹配双字节字符:这通常指的是所有Unicode字符,因为Unicode是一种双字节字符集,能够表示几乎所有国家的文字。正则表达式[^\x00-\xff]可以匹配非ASCII字符,它排除了0x00到0xff范围内的ASCII字符,从而包含了...
在本篇文章中,我们将探讨如何使用JavaScript将双字节字符转换为单字节字符,并计算转换后字符串的长度。这在处理数据库存储、URL编码、API请求等场景中非常有用,尤其是在对字符串长度有严格限制的情况下。 ### 双...
或许你也需要匹配双字节字符,中文也是双字节的字符 代码如下: 匹配双字节字符(包括汉字在内):[^\x00-\xff] 注:可以用来计算字符串的长度(一个双字节字符长度计2,ASCII字符计1) PS:关于正则,本站还提供了2款...
2. **匹配双字节字符(包括汉字)**: `[^\x00-\xff]` 该表达式用于匹配非ASCII字符,通常表示双字节字符,例如中文、日文、韩文等。 3. **计算字符串长度**: 使用`String.prototype.len`函数,通过替换非ASCII...
2. **匹配双字节字符**:`[^\x00-\xff]` 双字节字符通常指非ASCII字符,如汉字、日文、韩文等。这个表达式用来匹配除了ASCII字符之外的所有字符,即双字节字符。你可以用它来计算字符串中非ASCII字符的数量,从而...
文章给出的代码示例通过正则表达式来判断字符是否为双字节(包括中文字符),如果是,则该字符占用的字节数计为2;否则,计为1。这里使用的正则表达式是:/^[\u0000-\u00ff]$/.test(c),这个表达式可以匹配ASCII字符...
### JavaScript 汉字字节判断 在进行用户输入验证时,经常需要判断字符串的长度,尤其是当输入可能包含汉字时。由于JavaScript默认将每个字符(包括汉字)都视为一个单位,这可能导致实际长度与预期不符。例如,在...
例如,在UTF-8编码中,可以使用正则表达式来匹配非ASCII字符,并将其替换为特定的字符串(如题目中的"aa"),然后计算替换后的字符串长度即可得到中文字符的字节数。 ### 三、示例代码分析 #### 3.1 原始代码解析 ...
本文详细介绍了如何利用JavaScript来判断字符串的字节数,并根据字节长度进行字符串的截取操作。这包括了判断字符串中的字节数和字符数、限制输入长度、以及如何在JavaScript中动态地处理HTML页面元素的值。接下来,...
本文主要介绍了在JavaScript中如何编写函数来计算字符串的字节长度,并且对于采用不同方法计算时的效率进行了对比分析。英文字符在大多数编码格式下占用一个字节,而中文字符通常占用两个字节,这一点在计算字节长度...
匹配双字节字符(包括汉字在内):[^\x00-\xff] 匹配空行的正则表达式:\n[\s| ]*\r 匹配HTML标记的正则表达式:/<(.*)>.*|<(.*) \/>/ 匹配首尾空格的正则表达式:(^\s*)|(\s*$)(像vbscript那样的trim函数) 匹配...
标题中的“零依赖800字节的mingzip.zip”可能指的是一个极小型的JavaScript库,专门用于实现自动完成和自动建议功能,而且它的压缩后大小仅为800字节,这在JavaScript库中是非常轻量级的。通常,这样的库可能会利用...
2. **匹配双字节字符**:`[^x00-xff]` - 双字节字符通常指非ASCII字符,包括汉字和其他多字节编码的字符。此表达式可以用来计算字符串中双字节字符的数量。 3. **匹配空白行**:`\n\s*\r` - 这个正则可以匹配并删除...
实现的函数`len`通过遍历字符串,并检查每个字符是否为全角字符(通过正则表达式匹配非`\x00-\xff`区间的字符),来计算字符串的实际字节长度。 ```javascript var len = function(s) { s = String(s); return s....
- **用途**:匹配非ASCII范围内的双字节字符,通常用于识别中文等其他非英文字符。 - **应用场景**:文本分析、数据清洗等。 ##### 3. 获取字符串长度(考虑中文字符) - **JavaScript代码**: ```javascript ...