论坛首页 Web前端技术论坛

常用JS代码实例

浏览 42325 次
精华帖 (2) :: 良好帖 (1) :: 新手帖 (0) :: 隐藏帖 (18)
作者 正文
   发表时间:2009-03-24  
这里对 PoLan 朋友的回复:
对于 校验特殊符号的我给出了 正则的判断,很可惜你没有注意看.在
//! /^[a-zA-Z0-9\u4E00-\u9FA5#\]*$/.test(value);

/** 
* 功能: 检验是否包含特殊字符 
* 参数:value 检验值 
* 返回:TRUE OR FALSE 
*/   
function validateSpecSymbol(value) {  
    return true ;//! /^[a-zA-Z0-9\u4E00-\u9FA5#\]*$/.test(value);  
}

对于校验身份证号码的那个函数,请结合这个函数一起使用.function IsNumber(s)
你没有看到他们是一起的么?呵呵,有的东西搁在一起写,确实很麻烦,其实如果使用正则
很好搞定,但是我的正则的水平很有限,以后要多多使用正则了

谢谢你能给我提问,如果还是不行,请再次留言 谢谢
0 请登录后投票
   发表时间:2009-03-24  
http://iamsese.cn/view/widget/iamsese/validator.html
你可以访问这个页面来看到效果,对于
! /^[a-zA-Z0-9\\u4E00-\u9FA5#\\]*$/.test(value);  
做这个修改. 可能是之前写到页面中被转义了.
这个仅仅对包含特殊字符的字符串返回true.
可以验证中文字符..
0 请登录后投票
   发表时间:2009-03-25  
对于之前铁的JS unicode编码转换的例子理解有误,今天用到了,拿出来测试才知道自己写的有问题,仔细学习了一下,应该是这么写,本地测试通过...

虽然这样写了之后页面看起来比以前要大,但是基本解决了文字编码转换的困扰..

贴出一个代码例子,应该有更高效的实现,请与我分享,谢谢!

function unicode(s) {
	var len = s.length;
	var rs = "";
	for (var i = 0; i < len; i++) {
		var k = s.substring(i, i + 1);
		rs += "&#" + s.charCodeAt(i) + ";";
	}
	return rs;
}

function deunicode(s) {
	var k = s.split(";");
	var rs = "";
	for (i = 0; i < k.length; i++) {
		var m = k[i].replace(/&#/, "");
		rs += String.fromCharCode(m);
	}
	return rs;
}
s = unicode("我是色色vb2005xu.iteye.com -- Рекомендуемые маршруты в Тибете");
alert(s);
s = deunicode(s) ;
alert(s);


0 请登录后投票
   发表时间:2009-03-25  
关于JS加密解密的 参看这里 http://blog.21softs.com/read.php/65.htm
写的很不错!

0 请登录后投票
   发表时间:2009-03-25  
/**
 * Unicode 编码转换 
 * @param {} s
 * @return {}
 */
function unicode(s) {
	var ctpl = '&#{c};'
	var len = s.length;var rs = "";
	for (var i = 0; i < len; i++) {
		rs += ctpl.replace('{c}', s.charCodeAt(i));
	}
	return rs;
}
function deunicode(s) {
	var k = s.split(";");
	var rs = "";
	for (i = 0; i < k.length; i++) {
		rs += String.fromCharCode(k[i].replace(/&#/, ""));
	}
	return rs;
}


修改后的代码,应该没有问题了
0 请登录后投票
   发表时间:2009-03-25  
function deunicode(s) {
	/**
	 * 直接用str.replace("apples","oranges") 只会替换第一个匹配的字符
	 * 使用 /g 替换所有匹配的字符, /i 忽略大小写
	 */
	var k = s.replace(/&#/gi, "").split(";");
	alert(k);
	var rs = "";
	for (i = 0; i < k.length; i++)
		rs += String.fromCharCode(k[i]);
	return rs;
}


修改一下,应该可以增强些许性能,不用在每次循环中做正则匹配
0 请登录后投票
   发表时间:2009-03-25  
这篇帖子,大家讨论下啊,还有什么好的方法来进行调试 尤其是Jquery写的代码的调试
http://www.iteye.com/topic/355008
0 请登录后投票
   发表时间:2009-03-26  
以后还是这样封装来做吧...先写个小的工具类,慢慢的扩吧..


/**
 * 在Jquery中加入自己的命名空间 
 */
jQuery.iamsese = {
	
	version : '过客阵营 -- 我是色色 !' ,
	
	// ++++++++Unicode 编码转换++++++++ //
	toUnicode : function(s){
		var ctpl = '&#{c};'
		var len = s.length;var rs = "";
		for (var i = 0; i < len; i++)
			rs += ctpl.replace('{c}', s.charCodeAt(i));
		return rs;
	} ,
	deUnicode : function(s){
		/**
		 * 直接用str.replace("apples","oranges") 只会替换第一个匹配的字符
		 * 使用 /g 替换所有匹配的字符, /i 忽略大小写
		 */
		var k = s.replace(/&#/gi, "").split(";");
		var rs = "";
		for (i = 0; i < k.length; i++)
			rs += String.fromCharCode(k[i]);
		return rs;
	} ,
	
	// ++++++++系统带的 提示框++++++++ //
	showAlert : function (msg) {
		if (typeof(msg) == 'object'){
			var string = '{' ;
			jQuery.each(msg,function(k,v){
				string += k + ':' + v + ',' ;
			});
			string = string.replace(/,$/, "}") ;
			msg = string ;
		} else if (typeof(msg) == 'undefined'){
			msg = '' ;	
		}
		msg = this.version + '\n\n' + msg ; 
		alert(msg);
	}
};

//$.iamsese.showAlert({'a':'c','b':$.browser.version});
//$.iamsese.showAlert($.iamsese.deUnicode($.iamsese.toUnicode('小妖')));
//$.iamsese.showAlert($);


0 请登录后投票
   发表时间:2009-03-26  
做就做好一些吧,现在有个基本原形了,提供 三种字符串的验证模式

/**
 * 在Jquery中加入自己的命名空间 
 */
jQuery.iamsese = {
	
	version : '过客阵营 -- 我是色色 !' ,
	
	// ++++++++Unicode 编码转换++++++++ //
	toUnicode : function(s){
		var ctpl = '&#{c};'
		var len = s.length;var rs = "";
		for (var i = 0; i < len; i++)
			rs += ctpl.replace('{c}', s.charCodeAt(i));
		return rs;
	} ,
	deUnicode : function(s){
		/**
		 * 直接用str.replace("apples","oranges") 只会替换第一个匹配的字符
		 * 使用 /g 替换所有匹配的字符, /i 忽略大小写
		 */
		var k = s.replace(/&#/gi, "").split(";");
		var rs = "";
		for (i = 0; i < k.length; i++)
			rs += String.fromCharCode(k[i]);
		return rs;
	} ,
	
	// ++++++++自定义的验证工具++++++++ //
	
	/**
	 * 此函数不对传入的参数做任何验证和去除空格
	 * 要求调用者自己处理,尤其是在验证特殊字符时
	 * 空格也是特殊字符
	 * 
	 * 当前仅仅接受三个验证模式参数:
	 *  ip  -- ip格式
	 *  email -- email格式
	 *  sc -- 包含特殊字符
	 * 
	 * 返回的值是一个对象,类似于这样
	 * 对于不能识别的验证模式,将返回 -1
	 * { ip1:-1, ip:false, sc:true}
	 * 
	 * @param {} parameters
	 * @return {}
	 */
	validator : function(parameters){
		//定义缺省参数
		var defaults = {
//			'ip' : '0.0.0.0' , //ip 为验证IP
//			//可见特殊字符表,其他的敲不出来,注意空格也是特殊字符
//			'sc' : '!$%&*-+\"\'/() ' , //sc 为验证特殊字符
//			'email' : 'vb2005xu@sina.com'
		};
		//扩展defaults对象,如果不指定defaults,将对jQuery做扩充
		jQuery.extend(defaults,parameters);
		
		//定义一组正则匹配模式
		var patns = {
			'ip' : /^((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){3}(2[0-4]\d|25[0-5]|[01]?\d\d?)$/ ,
			'sc' : /[a-zA-Z0-9\\u4E00-\u9FA5#\\]*$/ ,//在前面加^表相反
			'email': /^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/
		} ;
		//要判断patns数组不存在parameters中k键的情况
		jQuery.each(defaults,function(k,v){
			if (patns.hasOwnProperty(k))
				defaults[k] = patns[k].test(v) ;
			else
				defaults[k] = -1 ;
		});
        return defaults ;
	} ,
	
	// ++++++++系统带的 提示框++++++++ //
	showAlert : function (msg) {
		if (typeof(msg) == 'object'){
			var s = '{' ;
			jQuery.each(msg,function(k,v){
				s += '\n\t' + k + ':' + v + ',' ;
			});
			//替换最后的分号
			s = s.replace(/,$/, "\n}") ;
			msg = s ;
		} else if (typeof(msg) == 'undefined'){
			msg = '' ;	
		}
		msg = this.version + '\n\n' + msg ; 
		//nitobi.Debug.log(msg);
		alert(msg);
	}
};

//$.iamsese.showAlert({'a':'c','b':$.browser.version});
//$.iamsese.showAlert($.iamsese.deUnicode($.iamsese.toUnicode('小妖')));
//$.iamsese.showAlert($.iamsese);
$.iamsese.showAlert( jQuery.iamsese.validator({
	ip1 : '11a.12.1.1',
	ip : '11a.12.1.1' ,
	sc : ' ' //注意空格也是特殊字符
}));



0 请登录后投票
   发表时间:2009-03-26  
JScript  

hasOwnProperty 方法
请参阅
in 运算符

应用于:Object 对象
要求
版本 5.5
返回一个布尔值,指出一个对象是否具有指定名称的属性。

object.hasOwnProperty(proName)
参数
object
必选项。一个对象的实例。
proName
必选项。一个属性名称的字符串值。
说明
如果 object 具有指定名称的属性,那么 hasOwnProperty 方法返回 true;反之则返回 false。此方法无法检查该对象的原型链中是否具有该属性;该属性必须是对象本身的一个成员。

示例
在下例中,所有的 String 对象共享一个公用 split 方法。下面的代码将输出 false 和 true。

var s = new String("JScript");
print(s.hasOwnProperty("split"));
print(String.prototype.hasOwnProperty("split"));


JScript  

in 运算符
请参阅
运算符优先级 | 运算符总结
要求
版本 1



测试对象中是否存在该属性。

result = property in object
参数
result
必选项。任意变量。
property
必选项。相当于字符串表达式的一个表达式。
object
必选项。任意对象。
说明
in 操作检查对象中是否有名为 property 的属性。也可以检查对象的原型,以便知道该属性是否为原型链的一部分。
0 请登录后投票
论坛首页 Web前端技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics