日期:2014-05-16 浏览次数:20445 次
插件内容(check.js):
?
/** * 数据验证框架.增加了对id字段检查出错时,直接在对应后面添加一< span>元素来显示错误信息. * * @author wangzi6hao * @version 2.1 * @description 2009-05-16 */ var checkData = new function() { var idExt="_wangzi6hao_Span";//生成span层的id后缀 /** * 得到中英文字符长(中文为2个字符) * * @param {} * str * @return 字符长 */ this.length = function(str) { var p1 = new RegExp('%u..', 'g') var p2 = new RegExp('%.', 'g') return escape(str).replace(p1, '').replace(p2, '').length } /** * 删除对应id元素 */ this.remove = function(id) { var idObject = document.getElementById(id); if (idObject != null) idObject.parentNode.removeChild(idObject); } /** * 在对应id后面错误信息 * * @param id:需要显示错误信息的id元素 * str:显示错误信息 */ this.appendError = function(id, str) { this.remove(id + idExt);// 如果span元素存在,则先删除此元素 var spanNew = document.createElement("span");// 创建span spanNew.id = id + idExt;// 生成spanid spanNew.style.color = "red"; spanNew.appendChild(document.createTextNode(str));// 给span添加内容 var inputId = document.getElementById(id); inputId.parentNode.insertBefore(spanNew, inputId.nextSibling);// 给需要添加元素后面添加span } /** * @description 过滤所有空格字符。 * @param str:需要去掉空间的原始字符串 * @return 返回已经去掉空格的字符串 */ this.trimSpace = function(str) { str += ""; while ((str.charAt(0) == ' ') || (str.charAt(0) == '???') || (escape(str.charAt(0)) == '%u3000')) str = str.substring(1, str.length); while ((str.charAt(str.length - 1) == ' ') || (str.charAt(str.length - 1) == '???') || (escape(str.charAt(str.length - 1)) == '%u3000')) str = str.substring(0, str.length - 1); return str; } /** * 过滤字符串开始部分的空格\字符串结束部分的空格\将文字中间多个相连的空格变为一个空格 * * @param {Object} * inputString */ this.trim = function(inputString) { if (typeof inputString != "string") { return inputString; } var retValue = inputString; var ch = retValue.substring(0, 1); while (ch == " ") { // 检查字符串开始部分的空格 retValue = retValue.substring(1, retValue.length); ch = retValue.substring(0, 1); } ch = retValue.substring(retValue.length - 1, retValue.length); while (ch == " ") { // 检查字符串结束部分的空格 retValue = retValue.substring(0, retValue.length - 1); ch = retValue.substring(retValue.length - 1, retValue.length); } while (retValue.indexOf(" ") != -1) { // 将文字中间多个相连的空格变为一个空格 retValue = retValue.substring(0, retValue.indexOf(" ")) + retValue.substring(retValue.indexOf(" ") + 1, retValue.length); } return retValue; } /** * 过滤字符串,指定过滤内容,如果内容为空,则默认过滤 '~!@#$%^&*()-+." * * @param {Object} * str * @param {Object} * filterStr * * @return 包含过滤内容,返回True,否则返回false; */ this.filterStr = function(str, filterString) { filterString = filterString == "" ? "'~!@#$%^&*()-+.\"" : filterString var ch; var i; var temp; var error = false;// 当包含非法字符时,返回True for (i = 0; i <= (filterString.length - 1); i++) { ch = filterString.charAt(i); temp = str.indexOf(ch); if (temp != -1) { error = true; break; } } return error; } this.filterStrSpan = function(id, filterString) { filterString = filterString == "" ? "'~!@#$%^&*()-+.\"" : filterString var val = document.getElementById(id); if (this.filterStr(val.value, filterString)) { val.select(); var str = "不能包含非法字符" + filterString; this.appendError(id, str); return false; } else { this.remove(id + idExt); return true; } } /** * 检查是否为网址 * * @param {} * str_url * @return {Boolean} true:是网址,false:<b>不是</b>网址; */ this.isURL = function(str_url) {// 验证url var strRegex = "^((https|http|ftp|rtsp|mms)?://)" + "?(([0-9a-z_!~*'().&=+$%-]+: )?[0-9a-z_!~*'().&=+$%-]+@)?" // ftp的user@ + "(([0-9]{1,3}\.){3}[0-9]{1,3}" // IP形式的URL- 199.194.52.184 + "|" // 允许IP和DOMAIN(域名) + "([0-9a-z_!~*'()-]+\.)*" // 域名- www. + "([0-9a-z][0-9a-z-]{0,61})?[0-9a-z]\." // 二级域名 + "[a-z]{2,6})" // first level domain- .com or .museum + "(:[0-9]{1,4})?" // 端口- :80 + "((/?)|" //