这几个精选JS函数很实用,哥随身携带:
他们是:
1、IE6下PNG图片背景透明化 correctPNG()
2、获取坐标(兼容所有浏览器) asoft_X() asoft_Y()
3、去除字符首尾空格:trim(sText)
4、是否为数值数值判断 isNumber(this)
5、邮件格式合法性判断 isEMailAddr(str)
/**全局PNG背景透明
* correctly handle PNG transparency in Win IE 5.5 & 6.
* 使用 : 放到onload下执行即可
*/
function correctPNG()
{
var arVersion = navigator.appVersion.split("MSIE");
var version = parseFloat(arVersion[1]);
if ((version >= 5.5) && (document.body.filters))
{
for(var j=0; j<document.images.length; j++)
{
var img = document.images[j];
var imgName = img.src.toUpperCase();
if (imgName.substring(imgName.length-3, imgName.length) == "PNG")
{
var imgID = (img.id) ? "id='" + img.id + "' " : "";
var imgClass = (img.className) ? "class='" + img.className + "' " : "";
var imgTitle = (img.title) ? "title='" + img.title + "' " : "title='" + img.alt + "' ";
var imgStyle = "display:inline-block;" + img.style.cssText;
if (img.align == "left") imgStyle = "float:left;" + imgStyle;
if (img.align == "right") imgStyle = "float:right;" + imgStyle;
if (img.parentElement.href) imgStyle = "cursor:hand;" + imgStyle;
var strNewHTML = "<span " + imgID + imgClass + imgTitle + " style=\"" + "width:" + img.width + "px; height:" + img.height + "px;" + imgStyle + ";filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src=\'" + img.src + "\', sizingMethod='scale');\"></span>";
img.outerHTML = strNewHTML;
j = j-1;
}
}
}
}
/**获取坐标
* 使用:调用asoft_X(event) asoft_Y(event)即可
*/
function asoft_X(e) { return (e.clientX +(document.documentElement ? document.documentElement.scrollLeft : document.body.scrollLeft)) || e.pageX ;}
function asoft_Y(e) { return (e.clientY + (document.documentElement ? document.documentElement.scrollTop : document.body.scrollTop)) || e.pageY; }
/**去除字符串首尾空格
* 使用:trim(sText)即可
*/
function trim(sText) { return sText.replace(new RegExp("(^[\\s]*)|([\\s]*document.getElementById)", "g"), ""); }
/**数值判断。允许数值面前增加+ -号,允许存在一个小数点。输入非法字符返回0
* 使用:isNumber(this)
*/
function isNumber(elem) {
var str=elem.value;
var oneDecimal=false;
var oneChar=0;
str=str.toString( );
for (var i=0; i<str.length; i++) {
oneChar=str.charAt(i).charCodeAt(0);
if (oneChar==45) {
if (i==0) { continue; } else {
alert("只能在数字前面增加正负号!");
return false;
}
}
// 小数点
if (oneChar==46) { if (!oneDecimal) { oneDecimal=true; continue; } else { alert("输入的数字只允许有一个小数点."); return false; } }
// 数字只能在0和9之间
if (oneChar<48 || oneChar > 57) { alert("此项只能输入数字."); elem.value="0";return false; }
}
return true;
}
/**邮件格式合法性判断。
* 使用:isEMailAddr(str)
*/
function isEMailAddr(str) {
if(trim(str.value)!=""){
var patterns = /^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$/;
if(patterns.test(str.value)) {return true;} else {alert("'"+str.value+"',邮件地址格式不正确,请检查后重新填写!!");$(str).focus(); return false;}
}
}