您的位置:首页 > Web前端 > JavaScript

Js 计算汉字的长度

2013-03-06 20:45 183 查看
// 汉字算做两个
var newvalue = value.replace(/[^\x00-\xff]/g, "** ");
var length = newvalue.length;

// 过滤回车
var newText = text.replace(new RegExp(String.fromCharCode(13), 'gm'), "")
    newText = newText.replace(new RegExp(String.fromCharCode(10), 'gm'), "");

var length = newText.length;

// charCodeAt 来计算
var num=0, limit=40;
for (var i=0; i <str.length; i++){
    if(str.charCodeAt(i)> 127||str.charCodeAt(i) <0){
		num+=2;
	}
	else {
		num++;
	}
}

if(num> limit){
	o.value= ' ';
	alert( '输入超出限制 ');
}
else {
	alert( '输入正确 ');
}
创建 RegExp 对象的语法:

new RegExp(pattern, attributes);


参数

参数 pattern 是一个字符串,指定了正则表达式的模式或其他正则表达式。

参数 attributes 是一个可选的字符串,包含属性 "g"、"i" 和 "m",分别用于指定全局匹配、区分大小写的匹配和多行匹配。ECMAScript 标准化之前,不支持 m 属性。如果 pattern 是正则表达式,而不是字符串,则必须省略该参数。

返回值

一个新的 RegExp 对象,具有指定的模式和标志。如果参数 pattern 是正则表达式而不是字符串,那么 RegExp() 构造函数将用与指定的 RegExp 相同的模式和标志创建一个新的 RegExp 对象。

如果不用 new 运算符,而将 RegExp() 作为函数调用,那么它的行为与用 new 运算符调用时一样,只是当 pattern 是正则表达式时,它只返回 pattern,而不再创建一个新的 RegExp 对象。

抛出

SyntaxError - 如果 pattern 不是合法的正则表达式,或 attributes 含有 "g"、"i" 和 "m" 之外的字符,抛出该异常。

TypeError - 如果 pattern 是 RegExp 对象,但没有省略 attributes 参数,抛出该异常。

修饰符

修饰符描述
i执行对大小写不敏感的匹配。
g执行全局匹配(查找所有匹配而非在找到第一个匹配后停止)。
m执行多行匹配。
String.fromCharCode()

该函数用于从一些Unicode字符值中返回一个字符串。

该函数属于String对象,所有主流浏览器均支持该函数。

语法

String.fromCharCode( [code1 [, code2 [, codes... ]]] )
String.fromCharCode()函数属于静态函数,而且只能够通过全局String对象进行调用,不能通过String对象的实例进行调用。

参数

参数描述
code1可选/Number类型 要转换为字符串的Unicode字符值1。
code2可选/Number类型 要转换为字符串的Unicode字符值2。
codes可选/Number类型 要转换为字符串的Unicode字符值,可以有多个。
返回值

String.fromCharCode()方法的返回值为String类型,其返回值为Unicode数值所表示的字符串。

注:如果没有传入任何参数,则返回空字符串""。

示例说明

document.writeln( String.fromCharCode( 65, 66, 67, 68, 69, 70, 71 ) ); // ABCDEFG
document.writeln( String.fromCharCode( 78 ) ); // N
document.writeln( String.fromCharCode( 20013, 22269 ) ); // 中国
document.writeln( String.fromCharCode() ); // (空字符串)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: