已锁定 主题:常用JS代码实例
精华帖 (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) 你没有看到他们是一起的么?呵呵,有的东西搁在一起写,确实很麻烦,其实如果使用正则 很好搞定,但是我的正则的水平很有限,以后要多多使用正则了 谢谢你能给我提问,如果还是不行,请再次留言 谢谢 |
|
返回顶楼 | |
发表时间:2009-03-24
http://iamsese.cn/view/widget/iamsese/validator.html
你可以访问这个页面来看到效果,对于 ! /^[a-zA-Z0-9\\u4E00-\u9FA5#\\]*$/.test(value); 做这个修改. 可能是之前写到页面中被转义了. 这个仅仅对包含特殊字符的字符串返回true. 可以验证中文字符.. |
|
返回顶楼 | |
发表时间: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); |
|
返回顶楼 | |
发表时间:2009-03-25
关于JS加密解密的 参看这里 http://blog.21softs.com/read.php/65.htm
写的很不错! |
|
返回顶楼 | |
发表时间: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; } 修改后的代码,应该没有问题了 |
|
返回顶楼 | |
发表时间: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; } 修改一下,应该可以增强些许性能,不用在每次循环中做正则匹配 |
|
返回顶楼 | |
发表时间:2009-03-25
这篇帖子,大家讨论下啊,还有什么好的方法来进行调试 尤其是Jquery写的代码的调试
http://www.iteye.com/topic/355008 |
|
返回顶楼 | |
发表时间: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($); |
|
返回顶楼 | |
发表时间: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 : ' ' //注意空格也是特殊字符 })); |
|
返回顶楼 | |
发表时间: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 的属性。也可以检查对象的原型,以便知道该属性是否为原型链的一部分。 |
|
返回顶楼 | |