移除字符串多餘空格
/**
* 去除多余空格函数
* trim:去除两边空格 lTrim:去除左空格 rTrim: 去除右空格
* 用法:
* var str = " hello ";
* str = str.trim();
*/
if(!!!String.prototype.trim){
String.prototype.trim = function(){
return this.replace(/(^[\\s]*)|([\\s]*$)/g, "");
}
String.prototype.lTrim = function(){
return this.replace(/(^[\\s]*)/g, "");
}
String.prototype.rTrim = function(){
return this.replace(/([\\s]*$)/g, "");
}
}
數字格式
/***是否是浮點類型**/
function isFloat(val){
var regex = /^[+|-]?\d*\.?\d*$/;
if (!regex.test(val.toString())){
return false;
}
return true;
}
/****精確到小數點後幾位數****/
function floatToFixed(val,n){
var val=val;
if(!isFloat(val)){
val=parseFloat(val);
}
try{
return val.toFixed(n);
} catch(err){
var n=Math.pow(10,n);
return Math.floor(val*n)/n;
}
}
/*
* formatMoney(s,type)
* 功能:金额按千位逗号分割
* 参数:s,需要格式化的金额数值.
* 参数:type,判断格式化后的金额是否需要小数位.
* 返回:返回格式化后的数值字符串.
*/
function formatMoney(s, type) {
if (/[^0-9\.]/.test(s)) return "0";
if (s == null || s == "") return "0";
s = s.toString().replace(/^(\d*)$/, "$1.");
s = (s + "00").replace(/(\d*\.\d\d)\d*/, "$1");
s = s.replace(".", ",");
var re = /(\d)(\d{3},)/;
while (re.test(s))
s = s.replace(re, "$1,$2");
s = s.replace(/,(\d\d)$/, ".$1");
if (type == 0) {// 不带小数位(默认是有小数位)
var a = s.split(".");
if (a[1] == "00") {
s = a[0];
}
}
return s;
}
/*
月份補充零
//return string
*/
function monthWithTwoNum(n){
var n=parseInt(n,10);
if(n>=0 && n<=9){
return '0'+n.toString();
}
return n.toString();
}
瀏覽器、元素高寬
function getBrowserW(){
return window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth;//可见区域宽度
}
function getBrowserH(){
//alert(document.documentElement.clientHeight);
return window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight;//可见区域高度
}
function getEleW(ele){
if(typeof ele == 'string'){
return document.getElementById(ele).offsetWidth;
} else {
return ele.offsetWidth;
}
}
function getEleH(ele){
if(typeof ele == 'string'){
return document.getElementById(ele).offsetHeight;
} else {
return ele.offsetHeight;
}
}
動態添加css&js(簡單)
/******普通動態 添加css******/
var gAryLinkStyle=[];
function includeLinkStyle(url) {
if(gAryLinkStyle.toString().indexOf(url)!=-1){
return;
}
var link = document.createElement("link");
link.rel = "stylesheet";
link.type = "text/css";
link.href = url;
document.getElementsByTagName("head")[0].appendChild(link);
gAryLinkStyle.push(url);
}
/******普通動態 添加js******/
var gAryScriptFile=[];
function includeScriptFile(url,callback){
if(gAryScriptFile.toString().indexOf(url)!=-1){
!!callback&&callback();
return false;
}
var script= document.createElement("script");
script.setAttribute('type', 'text/javascript');
if(!!callback){
script.onload = script.onreadystatechange = function(){
if (script.ready) {
return false;
}
if (!script.readyState || script.readyState == "loaded" || script.readyState == 'complete') {
script.ready = true;
callback();
}
};
}
script.src=url;
document.getElementsByTagName("head")[0].appendChild(script);
gAryScriptFile.push(url);
}
瀏覽器UA信息
/****browser version****
eg: if(Browser.ie && parseFloat(Browser.ie,10)<8.0) alert('is ie and version < 8.0');
**********/
var Browser = {};
Browser.ua = navigator.userAgent.toLowerCase();
Browser.s='';
(Browser.s = Browser.ua.match(/chrome\/([\d.]+)/)) ? Browser.chrome = parseFloat(Browser.s[1],10) :
(Browser.s = Browser.ua.match(/msie ([\d.]+)/)) ? Browser.ie = parseFloat(Browser.s[1],10) :
(Browser.s = Browser.ua.match(/rv:([\d.]+)/)) ? Browser.ie = parseFloat(Browser.s[1],10) :
(Browser.s = Browser.ua.match(/firefox\/([\d.]+)/)) ? Browser.firefox = parseFloat(Browser.s[1],10) :
(Browser.s = Browser.ua.match(/opera.([\d.]+)/)) ? Browser.opera = parseFloat(Browser.s[1],10) :
(Browser.s = Browser.ua.match(/version\/([\d.]+).*safari/)) ? Browser.safari = parseFloat(Browser.s[1],10) : 0;
獲取滾動條位置
// 说明:用 Javascript 获取滚动条位置等信息
function getScrollPro()
{
var t, l, w, h;
if (document.documentElement && document.documentElement.scrollTop) {
t = document.documentElement.scrollTop;
l = document.documentElement.scrollLeft;
w = document.documentElement.scrollWidth;
h = document.documentElement.scrollHeight;
} else if (document.body) {
t = document.body.scrollTop;
l = document.body.scrollLeft;
w = document.body.scrollWidth;
h = document.body.scrollHeight;
}
return { t: t, l: l, w: w, h: h };
}
function setScrollTop(v){
if (document.documentElement && document.documentElement.scrollTop) {
document.documentElement.scrollTop=v;
} else if (document.body) {
document.body.scrollTop=v;
}
return;
}
觸發事件
/****
trigger given event on element
demo: triggerEvent(document.getElementById('google'),'resize');
note: element not support window object
***/
function triggerEvent(ele,eventType){
if( document.createEvent) {
try{
var event = document.createEvent ("HTMLEvents");
event.initEvent(eventType, true, true);
ele.dispatchEvent(event);
} catch(err){}
} else if(document.createEventObject){
ele.fireEvent("on"+eventType);
}
}
function log(s){
console.log(s);
}
/***new win***/
function NewWin(url){
var a = document.createElement('a');
a.setAttribute("href", url);
a.setAttribute("target", "_blank");
triggerEvent(a,'click');
a=null;
}
拿css3 前綴
// JavaScript Document
;(function(w){
w.cssPrefix=(function cssPrefix(){
var vendors = { Webkit: 'webkit', Moz: 'Moz', O: 'o', MS: 'ms', None: '' }, prefix = '', testEl = document.createElement('div');
for(key in vendors){
if (testEl.style[vendors[key] + 'TransitionProperty'] !== undefined) {
prefix = '-' + vendors[key].toLowerCase() + '-';
break;
}
}
return prefix;
}());
}(window));
//console.log(window.cssPrefix);//-webkit-
Demo: xx這裡
檢查是否支持css3 屬性
var supportcss3 = (function() {
var div = document.createElement('div'),
vendors = 'Khtml Ms O Moz Webkit'.split(' '),
len = vendors.length;
return function(prop) {
if ( prop in div.style ) return true;
prop = prop.replace(/^[a-z]/, function(val) {
return val.toUpperCase();
});
while(len--) {
if ( vendors[len] + prop in div.style ) {
return true;
}
}
return false;
};
})();
if ( supportcss3('textShadow') ) {
document.documentElement.className += ' textShadow';
}
extend
// JavaScript Document
function extend(destination, source) {
for (var property in source)
destination[property] = source[property];
return destination;
}
獲得兄弟節點
function getPreviousSibling(ele){
var preNode,ele=ele;
while(true){
preNode=ele.previousSibling;
if(!!!preNode){
preNode=null;
break;
}
if(preNode.nodeType==1){
//alert(preNode.id);
break;
} else {
ele=preNode;
}
};
return preNode;
}
console.log(getPreviousSibling(document.getElementById('id2')));
function getNextSibling(ele){
var preNode,ele=ele;
while(true){
preNode=ele.nextSibling;
if(!!!preNode){
preNode=null;
break;
}
if(preNode.nodeType==1){
//alert(preNode.id);
break;
} else {
ele=preNode;
}
};
return preNode;
}
console.log(getNextSibling(document.getElementById('id1')));
function getSibling(elem) {
var r = [];
var n = elem.parentNode.firstChild;
for ( ; n; n = n.nextSibling ) {
if ( n.nodeType === 1 && n !== elem ) {
r.push( n );
}
}
return r;
}
demo: xx這裡
關閉瀏覽器前的提示
var isCloseWin=true;
window.onbeforeunload = function (e) {
//if(isCloseWin) return e.returnValue = "Note: You didn't save the data. Determined to leave?";//ie7 not ok
if(isCloseWin) return "Note: You didn't save the data. Determined to leave?";//ie7 ok
}
解決indexof兼容問題
//解决ie不兼容indexOf
if(!Array.indexOf){
Array.prototype.indexOf = function(obj){
for(var i=0; i<this.length; i++){
if(this[i]==obj){
return i;
}
}
return -1;
}
}
匹配英文名
str = str.replace(/(^\s*)|(\s*$)/g,"");//去掉首尾空格
//字符头尾是字母,中间由空格和字母组成,中间可以有多个空格
if(/^[A-Za-z][A-Za-z\s]*[A-Za-z]$/.test(str)){
str = str.replace(/\s+/g," ");//将中间无论多少空格替换成一个
}
处理多选与单选
//js
function selectCheckBoxAll(name) {
var el = document.getElementsByTagName('input');
var len = el.length;
for(var i=0; i<len; i++) {
if((el[i].type.toLowerCase()=="checkbox") && (el[i].name==name)) {
el[i].checked = true;
}
}
}
function clearCheckBoxAll(name) {
var el = document.getElementsByTagName('input');
var len = el.length;
for(var i=0; i<len; i++) {
if((el[i].type.toLowerCase()=="checkbox") && (el[i].name==name)) {
el[i].checked = false;
}
}
}
//return array
function getSelectCheckBoxValue(name) {
var el = document.getElementsByTagName('input');
var len = el.length;
var arySelect=[];
for(var i=0; i<len; i++) {
if((el[i].type.toLowerCase()=="checkbox") && (el[i].name==name)) {
if(el[i].checked == true){
arySelect.push(el[i].value);
}
}
}
return arySelect;
}
function isSelectCheckBox(name) {
var el = document.getElementsByTagName('input');
var len = el.length;
for(var i=0; i<len; i++) {
if((el[i].type.toLowerCase()=="checkbox") && (el[i].name==name)) {
if(el[i].checked == true) return true;
}
}
return false;
}
//have selected return value,or not return false
function getSelectRadioValue(name) {
var el = document.getElementsByTagName('input');
var len = el.length;
for(var i=0; i<len; i++) {
if((el[i].type.toLowerCase()=="radio") && (el[i].name==name)) {
if(el[i].checked == true) return el[i].value;
}
}
return false;
}
selectCheckBoxAll('cb[]');
alert(isSelectCheckBox('cb[]'));
console.log(getSelectCheckBoxValue('cb[]'));
<!--html-->
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>RunJS</title>
</head>
<body>
<button onclick="javascript:clearCheckBoxAll('cb[]');">clearCheckBoxAll</button>
<button onclick="javascript:alert(getSelectRadioValue('rb'));">getSelectRadioValue</button>
<input type="checkbox" name="cb[]" value="0" />0
<input type="checkbox" name="cb[]" value="1" />1
<br/>
<input type="radio" name="rb" value="33" />33
<input type="radio" name="rb" value="44" />44
<input type="radio" name="rb" value="55" />55
<script>
</script>
</body>
</html>
DEMO xx这里
批量替换超链接的#号,防止页面跳动
出现返回顶部按钮
增加到收藏夹
//基於jquery
//批量替换超链接的#号,防止页面跳动
function a_void(){
$("a").each(function(index, element) {
if ($(this).attr("href")=="#"){
$(this).attr('href','javascript:void(0);');
}
});
}
//滚动到一定距离,出现返回顶部按钮,参数是按钮元素
function sroll_top(selector){
$(window).bind("scroll",function(){
if( $(document).scrollTop() < $(window).height() *1.5 ) {
jQuery(selector).hide();
}else if($(document).scrollTop() > $(window).height() *1.5){
jQuery(selector).show();
}
});
}
/**增加到收藏夹,参数sURL地址,sTitle名称***/
function AddFavorite(sURL, sTitle)
{
try
{
window.external.addFavorite(sURL, sTitle);
}
catch (e)
{
try
{
window.sidebar.addPanel(sTitle, sURL, "");
}
catch (e)
{
alert("加入收藏失败,请使用Ctrl+D进行添加");
}
}
}