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

常见的js函数 个人觉得很有用 基础的js (转)

2010-09-01 13:37 381 查看
2010-09-012010-09-01

/*根据元素ID查找元素*/
function $() {
var elements = new Array();
for (var i = 0; i < arguments.length; i++) {
var element = arguments[i];
if (typeof element == 'string')
element = document.getElementById(element);
if (arguments.length == 1)
return element;
elements.push(element);
}
return elements;
}

/*根据元素ID取得元素*/
function $E(elemid) {
return document.getElementById(elemid);
}

/*根据元素ID取得元素的value*/
function $Vo(elemid) {
return document.getElementById(elemid).value;
}

/*根据元素ID取得元素的innerHTML*/
function $H(elemid) {
return document.getElementById(elemid).innerHTML;
}

/*根据元素ID隐藏该元素*/
function $Hide(id) {
document.getElementById(id).style.display = 'none';
}

/*根据元素ID显示该元素*/
function $Display(id) {
document.getElementById(id).style.display = 'block';
}

/*根据元素ID设置该元素为空*/
function $Dlose(id) {
document.getElementById(id).innerHTML='';
}

/*网页转向*/
function $U(url){
window.location.href=url;
}

/*取字符长度,一个中文字符为两个字节*/
function $Len(str){
return (''+str).replace(/[^/x0000-/xFF00]/gi,'xx').length;
}

//用正则表达式将前后空格用空字符串替代。
function trim(strSrc)
{
return strSrc.replace(/(^/s*)|(/s*$)/g, "");
}
//onkeypress时根据输入类型控制输入字符,"F":浮点型 "I":整型 "D":日期型
function filterKey(sType){
var iKey = window.event.keyCode;

if(sType == "F"){ //浮点型

if(iKey != 45 && iKey != 46 && iKey != 13 && iKey != 11 && !(iKey>=48 && iKey<=57))
window.event.keyCode = 0
else{
if(iKey == 46){
var obj = window.event.srcElement;
if(obj.value.indexOf(".")>=0)
window.event.keyCode = 0;
}
if(iKey == 45){
var obj = window.event.srcElement;
if(obj.value.indexOf("-")>=0)
window.event.keyCode = 0;
else{
window.event.keyCode = 0;
obj.value = "-" + obj.value;
if(obj.onchange != null){
obj.onchange();
}
}
}
}
} //end "F"
else if(sType == "I"){ //整型
if(iKey != 13 && iKey != 45 && iKey != 11 && !(iKey>=48 && iKey<=57))
window.event.keyCode = 0;
else if(iKey == 45){
var obj = window.event.srcElement;
if(obj.value.indexOf("-")>=0)
window.event.keyCode = 0;
else{
window.event.keyCode = 0;
obj.value = "-" + obj.value;
if(obj.onchange != null){
obj.onchange();
}
}
}
} // end "I"
else if(sType == "D"){ //日期型
var obj = window.event.srcElement;
var strDate = obj.value;

if(strDate.length>=10){
window.event.keyCode = 0;
return;
}
else if(strDate.length<4){ //年
if(iKey != 13 && iKey != 11 && !(iKey>=48 && iKey<=57))
window.event.keyCode = 0;
}
else if(strDate.length == 4){ //分隔符
if(iKey != 45 && iKey != 47)
window.event.keyCode = 0;
}
else if(strDate.length>=5){
if( strDate.indexOf("-") > 0 && strDate.indexOf("-") == strDate.lastIndexOf("-")){ //正输入月份
if(strDate.length>=7 && iKey != 45){ //如果长度过长,则退出
window.event.keyCode = 0;
return;
}

if(iKey>=48 && iKey<=57){
var iPos = strDate.indexOf("-");

var iMonth = parseInt("" + strDate.substr(iPos+1,strDate.length-iPos-1) + (parseInt(iKey) - 48));

if(strDate.length>=6 && (iMonth <1 || iMonth > 12)){
window.event.keyCode = 0;
return;
}
}
} // end if("-")
else if( strDate.indexOf("/") > 0 && strDate.indexOf("/") == strDate.lastIndexOf("/")){ //正输入月份
if(strDate.length>=7 && iKey != 47){ //如果长度过长,则退出
window.event.keyCode = 0;
return;
}

if(iKey>=48 && iKey<=57){
var iPos = strDate.indexOf("/");

var iMonth = parseInt("" + strDate.substr(iPos+1,strDate.length-iPos-1) + (parseInt(iKey) - 48));

if(strDate.length >= 6 && (iMonth <1 || iMonth > 12)){
window.event.keyCode = 0;
return;
}
}
} // end if("/")
else if( strDate.indexOf("-") > 0 && strDate.indexOf("-") != strDate.lastIndexOf("-")){ //正输入日期
if(iKey>=48 && iKey<=57){
var iPos = strDate.lastIndexOf("-");
if(strDate.length - iPos > 2){
window.event.keyCode = 0;
return;
}

var iDay = parseInt("" + strDate.substr(iPos+1,strDate.length-iPos-1) + (parseInt(iKey) - 48));

if(iDay > 31){
window.event.keyCode = 0;
return;
}
}
}
else if( strDate.indexOf("/") > 0 && strDate.indexOf("/") != strDate.lastIndexOf("/")){ //正输入日期
if(iKey>=48 && iKey<=57){
var iPos = strDate.lastIndexOf("/");
if(strDate.length - iPos > 2){
window.event.keyCode = 0;
return;
}

var iDay = parseInt("" + strDate.substr(iPos+1,strDate.length-iPos-1) + (parseInt(iKey) - 48));

if(iDay > 31){
window.event.keyCode = 0;
return;
}
}
}

}

if(strDate.charAt(strDate.length-1) == "-" || strDate.charAt(strDate.length-1) == "/"){
if(iKey != 13 && iKey != 11 && !(iKey>=48 && iKey<=57))
window.event.keyCode = 0;
}

if(iKey == 47 || iKey == 45){
if(strDate.indexOf("-") > 0 && iKey == 47)
window.event.keyCode = 0;
if(strDate.indexOf("/") > 0 && iKey == 45)
window.event.keyCode = 0;
}
} // end "D"

} /*自适应大小*/
function DrawImage(ImgD,_width,_height){
if(!_width) _width=120;
if(!_height) _height=120;
var flag=false;
var image=new Image();
image.src=ImgD.src;
if(image.width>0&&image.height>0){
flag=true;
if(image.width/image.height>=_width/_height){//120*120
if(image.width>_width){
ImgD.width=_width;
ImgD.height=(image.height*_width)/image.width;
}else{
ImgD.width=image.width;
ImgD.height=image.height;
}
ImgD.alt=image.width+"X"+image.height;
}
else{
if(image.height>_height){
ImgD.height=_height;
ImgD.width=(image.width*_height)/image.height;
}else{
ImgD.width=image.width;
ImgD.height=image.height;
}
ImgD.alt=image.width+"X"+image.height;
}
}
}

/*Cookie*/
function setCookie(name,value)
{
var Days = 365;
var exp = new Date(); //new Date("December 31, 9998");
exp.setTime(exp.getTime() + Days*24*60*60);
document.cookie = name + "="+ escape (value) + ";expires=" + exp.toGMTString();
}
function getCookie(name)
{
var arr,reg=new RegExp("(^| )"+name+"=([^;]*)(;|$)");
if(arr=document.cookie.match(reg))
return unescape(arr[2]);
else
return null;
}
function delCookie(name)
{
var exp = new Date();
exp.setTime(exp.getTime() - 1);
var cval=getCookie(name);
if(cval!=null)
document.cookie= name + "="+cval+";expires="+exp.toGMTString();
}

/*验证数字*/
function isNumber(e){
var number = "1234567890";
for(var i=0; i<e.length; i++){
if (number.indexOf(e.charAt(i))<0) {
return false;
}
}
return true;
}

/*验证数字*/
function isAllDigits(argvalue) {
argvalue = argvalue.toString();
var validChars = "0123456789";
var startFrom = 0;
if (argvalue.substring(0, 2) == "0x") {
validChars = "0123456789abcdefABCDEF";
startFrom = 2;
} else if (argvalue.charAt(0) == "0") {
validChars = "01234567";
startFrom = 1;
} else if (argvalue.charAt(0) == "-") {
startFrom = 1;
}

for (var n = startFrom; n < argvalue.length; n++) {
if (validChars.indexOf(argvalue.substring(n, n+1)) == -1) return false;
}
return true;
}

/*检查Email是否合法*/
function isEmail(s){
if (s.length<7||s.length > 50){
return false;
}
var regu = "^(([0-9a-zA-Z]+)|([0-9a-zA-Z]+[_.0-9a-zA-Z-]*[0-9a-zA-Z]+))@([a-zA-Z0-9-]+[.])+([a-zA-Z]{2}

|net|NET|com|COM|gov|GOV|mil|MIL|org|ORG|edu|EDU|int|INT)$"
var re = new RegExp(regu);
if (s.search(re) != -1) {
return true;
} else {
return false;
}
}

/*检查字符串是否为Null*/
function isNull(s){
if (s == null || s.length <= 0 || s.trim() == ""){
return true;
}
return false;
}

/*检查字符串是否为空*/
function isEmpty(s){
if (s == null || s.length <= 0 || s.trim() == ""){
return true;
}
return false;
}
/*检查日期是否合法*/
function isValidDate(day, month, year) {
if (month < 1 || month > 12) {
return false;
}
if (day < 1 || day > 31) {
return false;
}
if ((month == 4 || month == 6 || month == 9 || month == 11) &&
(day == 31)) {
return false;
}
if (month == 2) {
var leap = (year % 4 == 0 &&
(year % 100 != 0 || year % 400 == 0));
if (day>29 || (day == 29 && !leap)) {
return false;
}
}
return true;
}

/*获得Radio的值*/
function getRadioValue(name){
var radios = document.getElementsByName(name);
var i;
if (null == radios.length){
if(radios.checked) {
return radios.value;
}
}
for(i = 0; i < radios.length; i++){
if(radios[i].checked){
return radios[i].value;
}
}
return 0;
}

/*设置Radio的值*/
function setRadioValue(name,value){
var radios = document.getElementsByName(name);
var i;
if (null == radios.length){
if(radios.checked) {
radios.checked = "checked";
}
}
for(i=0;i<radios.length;i++){
if(value == radios[i].value){
radios[i].checked = "checked";
}
}
return 0;
}

/*获得CheckBox的值,多个为数组*/
function getCheckBoxValues(name){
var values = new Array();
var cbs = document.getElementsByName(name);
var i;
if (null == cbs) return values;
if (null == cbs.length){
if(cbs.checked) {
values[values.length] = cbs.value;
}
return values;
}
var count = 0 ;
for(i = 0; i<cbs.length; i++){
if(cbs[i].checked){
values[values.length] = cbs[i].value;
}
}
return values;
}

/*设置CheckBox的值*/
function setCheckBoxValue(name,value){
var cbs = document.getElementsByName(name);
var i;
if (null == cbs) return 0 ;
if (null == cbs.length){
cbs.checked = value;
return 0;
}
for(i=0;i<cbs.length;i++){
cbs[i].checked = value;
}
return 0;
}

/*设置CheckBox选中状态*/
function setCheckBoxs(name,value){
var cbs = document.getElementsByName(name);
var i;
if (null == cbs) return 0 ;
if (null == cbs.length){
cbs.checked = true;
return 0;
}
for(i=0;i<cbs.length;i++){
if(cbs[i].value == value){
cbs[i].checked = true;
}
}
return 0;
}

function htmlEncode(text) {
return text.replace(/&/g, '&').replace(/"/g, '"').replace(/</g, '<').replace(/>/g, '>');
} var Request = new Object();
Request.send = function(url, method, callback, data, urlencoded) {
var req;
if (window.XMLHttpRequest) {
req = new XMLHttpRequest();
if (req.overrideMimeType) {
req.overrideMimeType('text/xml');
}
} else if (window.ActiveXObject) {
req = new ActiveXObject("Microsoft.XMLHTTP");
}
req.onreadystatechange = function() {
if (req.readyState == 4) {
if (req.status < 400) {
(method=="POST") ? callback(req) : callback(req,data);
} else {
}
}
}
if (method=="POST") {
req.open("POST", url, true);
if (urlencoded) req.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
req.send(data);
} else {
req.open("GET", url, true);
req.send(null);
}
// return req;
}

Request.sendRawPOST = function(url, data, callback) {
Request.send(url, "POST", callback, data, false);
}
Request.sendPOST = function(url, data, callback) {
Request.send(url, "POST", callback, data, true);
}
Request.sendGET = function(url,callback) {
Request.send(url, "GET", callback, null, null);
}

/*分析status文件的内容*/
function parseResponseStatus(documentElement){
var dataobj = new Object();
//parse status
var status = documentElement.getElementsByTagName("status");
if(status && status.length > 0){
if(status[0].firstChild){
dataobj.status = status[0].firstChild.nodeValue;
}
else{
dataobj.status = "";
}
}
return dataobj;
}

//提交form,把得到的数据放在指定的ID上.
function ajaxFormRequest(datastr) {

eval("var obj = "+datastr+";");
if (obj.id == null)
obj.id = "输入自定义id";
disableBtn();
dojo.io.bind({
url: parseUrl(obj.url),
useCache: false,
preventCache: false,
encoding:'UTF-8',
load: function(type, data, evt) {
$E(obj.id).innerHTML = data;
enableBtn();
},
error: function(type, error) { alert("error");},
mimetype: "text/plain",
formNode: $E(obj.form)
});
}

//提交form,执行load方法
function ajaxRequestLoad(datastr) {

eval("var obj = "+datastr+";");
if (obj.id == null)
obj.id = "输入自定义id";
disableBtn();
dojo.io.bind({
url: parseUrl(obj.url),
useCache: false,
preventCache: false,
encoding:'UTF-8',
load: obj.load,
error: function(type, error) { alert("error");},
mimetype: "text/plain",
formNode: $E(obj.form)
});
}

/*金额标签转换函数*/
function money_convert(name){

var formatName = name + "_format";
var strValue = document.getElementById(formatName).value;
strValue=strValue.replace(",","");
var regex = /^(0(/./d{0,2})?|([1-9]+[0]*)+(/./d{0,2})?)$/;
if(!regex.test(strValue)){
//alert("金额格式不正确!");
document.getElementById(name).value=0;
document.getElementById(formatName).value=0;
}else{

strValue = Math.round(parseFloat(strValue)*1000+0.001);
document.getElementById(name).value=strValue;
}
}

/*金额标签转换函数
* 获得焦点时,去掉金额中的','符号
*/
function prepare(obj){
var strValue = obj.value;
strValue=strValue.replaceAll(",","");
obj.value = strValue;
obj.select();
}

String.prototype.replaceAll = function(s1,s2){
return this.replace(new RegExp(s1,"gm"),s2);
}

/*日期标签转换函数*/
function setDate(name){
var formatName = "format_" + name;
var tempDate = document.getElementById(name).value;
var validateDate = dojo.widget.byId(formatName).inputNode.value;
var regex = /^[1-9]{1}/d{3}-/d{1,2}-/d{1,2}$/;
if(regex.test(validateDate)){
var dateString = validateDate.split("-");
var year = dateString[0];
var month = dateString[1];
var day = dateString[2];
if(testMonth(month)&&testDay(year,month,day)){
document.getElementById(name).value=validateDate;
return;
}
}

if(validateDate==""){
tempDate="";
}
dojo.widget.byId(formatName).inputNode.value=tempDate;
document.getElementById(name).value=tempDate;
}

function testMonth(month){
if (month < 1 || month > 12)
{
alert("月份应该为1到12的整数");
return false;
}
return true;
}
function testDay(year,month,day){
if (day < 1 || day > 31)
{
alert("每个月的天数应该为1到31的整数");
return false;
}
if ((month==4 || month==6 || month==9 || month==11) && day==31)
{
alert("该月不存在31号");
return false;
}
if (month==2)
{
var isleap=(year % 4==0 && (year % 100 !=0 || year % 400==0));
if (day>29)
{
alert("2月最多有29天");
return false;
}
if ((day==29) && (!isleap))
{
alert("闰年2月才有29天");
return false;
}
}
return true;
}
//比较两个日期是否有效(第一个日期不能在大于第二个日期);第一个日期可以为空,当为空时不进行验证
function compareTwoDate(startDate,endDate,s){
var a=startDate;
var b=endDate;
if(startDate==""){
return true;
}
if(((Number(a.substring(0,4))-Number(b.substring(0,4)))*356+
(Number(a.substring(5,7))-Number(b.substring(5,7)))*31+
(Number(a.substring(8,10))-Number(b.substring(8,10))))>0){
alert(s);
//startDate.focus();
return false;
}
return true;
}
//比较两个日期时间是否有效(第一个日期时间不能在大于第二个日期时间);第一个日期时间可以为空,当为空时不进行验证
function compareTwoDateTime(startDate,endDate,startTime,endTime,s){
var a=startDate;
var b=endDate;
var at = startTime;
var bt = endTime;
if(startDate==""){
return true;
}
if(((Number(a.substring(0,4))-Number(b.substring(0,4)))*356*24*3600+
(Number(a.substring(5,7))-Number(b.substring(5,7)))*31*24*3600+
(Number(a.substring(8,10))-Number(b.substring(8,10)))*24*3600+
(Number(at.substring(0,2))-Number(bt.substring(0,2)))*3600+
(Number(at.substring(3,5))-Number(bt.substring(3,5)))*60+
(Number(at.substring(6))-Number(bt.substring(6)))>0)){
alert(s);
return false;
//startDate.focus();
}
return true;
}
//验证时间是否合法.
function testTime(time){
var regex = /^[0-2]{1}[0-9]{1}:[0-5]{1}[0-9]{1}:[0-5]{1}[0-9]{1}$/;
if(!regex.test(time)){
alert("您输入的时间格式不正确!");
return false;
}
var hour = time.substring(0,2);
var minute = time.substring(3,5);
var second = time.substring(6);
if(hour>23 || hour <0){
alert("小时的值应该在0-23之间!");
return false;
}
if(minute > 60 ||minute < 0){
alert("分钟的值应该在0-59之间!");
return false;
}
if(second > 60 ||second < 0){
alert("秒钟的值应该在0-59之间!");
return false;
}
return true;
}

String.prototype.trim=function(){
return this.replace(/(^/s*)|(/s*$)/g, "");
}

function sendmoneycheck(path,orderSeqid) {
var password = document.getElementById('password').value;
if(document.getElementById('password').value==null || document.getElementById('password').value=='') {
alert('取款密码必须输入');
} else {
var url = path+'/sendmoney/managerecconfirmsendmoney.htm?orderSeqid='+orderSeqid+'&passwd='+document.getElementById('password').value;

ajaxFormRequest('{url:"'+url+'",id:"paginationResult"}');
$E('buttonconfirm').disabled=true;
}
}

function isUrlValidate(url){
var regx = /^(/s)*(http(s)?:////)?([/w-]+/.)+[/w-]+(:(/d{1,4}))?(//[/w-.//?%&=]*)?(/s)*$/;
return regx.test(url);
}

function isDateValidate(strDate){
var regx = /^([1-2]/d{3})[//|/-](0?[1-9]|10|11|12)[//|/-]([1-2]?[0-9]|0[1-9]|30|31)$/;
return regx.test(strDate);
}

function isEmailValidate(email){
var regx = /^(/s)*([/w]+([-_.][/w]+)*@[/w]+([.][/w]+)*/.[/w]+([.][/w]+)*)(/s)*$/;
return regx.test(email);
}

function isPhoneValidate(tel){
var regx = /^(/s)*((1[35]/d{9})|((0/d{2,3}/-){1}[1-9]{1}/d{6,7}(/-/d{1,4})?))(/s)*$/;

return regx.test(tel);
}

function isMobileValidate(tel){
var regx = /^(/s)*(1[35]/d{9})(/s)*$/;

return regx.test(tel);
}

function dateCompare(date1, date2){
date1 = date1.replace(/-/g, "/");
date2 = date2.replace(/-/g, "/");

try{
return Date.parse(date1) - Date.parse(date2);
}
catch(e){
return 0;
}
}

function respond(obj){
if(window.event.keyCode==13){
obj.onblur();
}
}

function parseUrl(url){

var uniqueKey = new Date();
if(url != null && url.indexOf("?") > 0){
url += "&uniqueKey=" + uniqueKey;
}
else{
url += "?uniqueKey=" + uniqueKey;
}
return url;
}

function disableBtn(){
var oBtns = document.getElementsByName("BTN_QRY");

if(oBtns != null && oBtns.length > 0){
for(var i=0; i<oBtns.length; i++){
oBtns[i].disabled = true;
}
}
}

function enableBtn(){

var oBtns = document.getElementsByName("BTN_QRY");

if(oBtns != null && oBtns.length > 0){
for(var i=0; i<oBtns.length; i++){
oBtns[i].disabled = false;
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: