JavaScript語(yǔ)法:
DOM操作:
- 數(shù)據(jù)類型
- 面向?qū)ο?/li>
- 繼承
- 閉包
- 插件
- 作用域
- 跨域
- 原型鏈
- 模塊化
- 自定義事件
- 內(nèi)存泄漏
- 事件機(jī)制
- 異步裝載回調(diào)
- 模板引擎
- JSON
-
ajax
面向?qū)ο?png
JavaScript事件觸發(fā):
onkeypress 在用戶按下并放開(kāi)任何字母數(shù)字鍵時(shí)發(fā)生致讥。系統(tǒng)按鈕(例如,箭頭鍵和功能鍵)無(wú)法得到識(shí)別褥紫。[響應(yīng)一個(gè)鍵]
onkeyup 在用戶放開(kāi)任何先前按下的鍵盤(pán)鍵時(shí)發(fā)生侄刽。
onkeydown 在用戶按下任何鍵盤(pán)鍵(包括系統(tǒng)按鈕,如箭頭鍵和功能鍵)時(shí)發(fā)生。[響應(yīng)幾個(gè)鍵的組合]可以響應(yīng)Ctrl陆爽、Alt曹体、Shift等功能鍵和鍵的組合,而onkeypress不能
onfocusout 失去光標(biāo)事件
onfocus 獲得光標(biāo)事件
onabort 圖片下載被打斷時(shí)
onblur 元素失去焦點(diǎn)時(shí)
onclick 鼠標(biāo)點(diǎn)擊
ondblclick 鼠標(biāo)雙擊
onerror 加載文檔或圖片發(fā)生錯(cuò)誤時(shí)
onmousedown 鼠標(biāo)被按下時(shí)
onmousemove 鼠標(biāo)被移動(dòng)時(shí)
onmouseout 鼠標(biāo)離開(kāi)元素時(shí)
onmouseover 鼠標(biāo)經(jīng)過(guò)元素時(shí)
onmouseup 釋放鼠標(biāo)按鍵時(shí)
onunload 用戶離開(kāi)頁(yè)面時(shí)
100個(gè)原生JavaScript使用功能代碼片段
目錄
1.原生JavaScript實(shí)現(xiàn)字符串長(zhǎng)度截取
2.原生JavaScript獲取域名主機(jī)
3.原生JavaScript清除空格
4.原生JavaScript替換全部
5.原生JavaScript轉(zhuǎn)義html標(biāo)簽
6.原生JavaScript還原h(huán)tml標(biāo)簽
7.原生JavaScript判斷是否為數(shù)字類型
8.原生JavaScript時(shí)間日期格式轉(zhuǎn)換
9.原生JavaScript設(shè)置cookie值
10.原生JavaScript獲取cookie值
11.原生JavaScript加入收藏夾
12.原生JavaScript設(shè)為首頁(yè)
13.原生JavaScript判斷IE6
14.原生JavaScript加載樣式文件
15.原生JavaScript返回腳本內(nèi)容
16.原生JavaScript清除腳本內(nèi)容
17.原生JavaScript動(dòng)態(tài)加載腳本文件
18.原生JavaScript返回按ID檢索的元素對(duì)象
19.原生JavaScript返回瀏覽器版本內(nèi)容
20.原生JavaScript元素顯示的通用方法
21.原生JavaScript中有insertBefore方法,可惜卻沒(méi)有insertAfter方法?用如函數(shù)實(shí)現(xiàn)
22.原生JavaScript中兼容瀏覽器綁定元素事件
23.原生JavaScript光標(biāo)停在文字的后面寥枝,文本框獲得焦點(diǎn)時(shí)調(diào)用
24.原生JavaScript檢驗(yàn)URL鏈接是否有效
25.原生JavaScript格式化CSS樣式代碼
26.原生JavaScript壓縮CSS樣式代碼
27.原生JavaScript獲取當(dāng)前路徑
28.原生JavaScriptIP轉(zhuǎn)成整型
29.原生JavaScript整型解析為IP地址
30.原生JavaScript實(shí)現(xiàn)checkbox全選與全不選
31.原生JavaScript判斷是否移動(dòng)設(shè)備
32.原生JavaScript判斷是否移動(dòng)設(shè)備訪問(wèn)
33.原生JavaScript判斷是否蘋(píng)果移動(dòng)設(shè)備訪問(wèn)
34.原生JavaScript判斷是否安卓移動(dòng)設(shè)備訪問(wèn)
35.原生JavaScript判斷是否Touch屏幕
36.原生JavaScript判斷是否在安卓上的谷歌瀏覽器
37.原生JavaScript判斷是否打開(kāi)視窗
38.原生JavaScript獲取移動(dòng)設(shè)備初始化大小
39.原生JavaScript獲取移動(dòng)設(shè)備最大化大小
40.原生JavaScript獲取移動(dòng)設(shè)備屏幕寬度
41.原生JavaScript完美判斷是否為網(wǎng)址
42.原生JavaScript根據(jù)樣式名稱檢索元素對(duì)象
43.原生JavaScript判斷是否以某個(gè)字符串開(kāi)頭
44.原生JavaScript判斷是否以某個(gè)字符串結(jié)束
45.原生JavaScript返回IE瀏覽器的版本號(hào)
46.原生JavaScript獲取頁(yè)面高度
47.原生JavaScript獲取頁(yè)面scrollLeft
48.原生JavaScript獲取頁(yè)面可視寬度
49.原生JavaScript獲取頁(yè)面寬度
50.原生JavaScript獲取頁(yè)面scrollTop
51.原生JavaScript獲取頁(yè)面可視高度
52.原生JavaScript跨瀏覽器添加事件
53.原生JavaScript跨瀏覽器刪除事件
54.原生JavaScript去掉url前綴
55.原生JavaScript隨機(jī)數(shù)時(shí)間戳
56.原生JavaScript全角半角轉(zhuǎn)換,iCase: 0全到半宪塔,1半到全,其他不轉(zhuǎn)化
57.原生JavaScript確認(rèn)是否鍵盤(pán)有效輸入值
58.原生JavaScript獲取網(wǎng)頁(yè)被卷去的位置
59.原生JavaScript另一種正則日期格式化函數(shù)+調(diào)用方法
60.原生JavaScript時(shí)間個(gè)性化輸出功能
61.原生JavaScript解決offsetX兼容性問(wèn)題
62.原生JavaScript常用的正則表達(dá)式
63.原生JavaScript實(shí)現(xiàn)返回頂部的通用方法
64.原生JavaScript獲得URL中GET參數(shù)值
65.原生JavaScript實(shí)現(xiàn)全選通用方法
66.原生JavaScript實(shí)現(xiàn)全部取消選擇通用方法
67.原生JavaScript實(shí)現(xiàn)打開(kāi)一個(gè)窗體通用方法
68.原生JavaScript判斷是否為客戶端設(shè)備
69.原生JavaScript獲取單選按鈕的值
70.原生JavaScript獲取復(fù)選框的值
71.原生JavaScript判斷是否為郵箱
72.原生JavaScript判斷是否有列表中的危險(xiǎn)字符
73.原生JavaScript判斷字符串是否大于規(guī)定的長(zhǎng)度
74.原生JavaScript判斷字符串是為網(wǎng)址不區(qū)分大小寫(xiě)
75.原生JavaScript判斷字符串是否為小數(shù)
76.原生JavaScript判斷字符串是否為整數(shù)
77.原生JavaScript判斷字符串是否為浮點(diǎn)數(shù)
78.原生JavaScript判斷字符是否為A-Za-z英文字母
79.原生JavaScript判斷字符串是否郵政編碼
80.原生JavaScript判斷字符是否空NULL
81.原生JavaScript用正則表達(dá)式提取頁(yè)面代碼中所有網(wǎng)址
82.原生JavaScript用正則表達(dá)式清除相同的數(shù)組(低效率)
83.原生JavaScript用正則表達(dá)式清除相同的數(shù)組(高效率)
84.原生JavaScript用正則表達(dá)式按字母排序囊拜,對(duì)每行進(jìn)行數(shù)組排序
85.原生JavaScript字符串反序
86.原生JavaScript用正則表達(dá)式清除html代碼中的腳本
87.原生JavaScript動(dòng)態(tài)執(zhí)行JavaScript腳本
88.原生JavaScript動(dòng)態(tài)執(zhí)行VBScript腳本
89.原生JavaScript實(shí)現(xiàn)金額大寫(xiě)轉(zhuǎn)換函數(shù)
90.原生JavaScript常用的正則表達(dá)式大收集
91.原生JavaScript實(shí)現(xiàn)窗體改變事件resize的操作(兼容所以的瀏覽器)
92.原生JavaScript用正則清除空格分左右
93.原生JavaScript判斷變量是否空值
94.原生JavaScript實(shí)現(xiàn)base64解碼
95.原生JavaScript實(shí)現(xiàn)utf8解碼
96.原生JavaScript獲取窗體可見(jiàn)范圍的寬與高
97.原生JavaScript判斷IE版本號(hào)(既簡(jiǎn)潔.又向后兼容D晨稹)
98.原生JavaScript獲取瀏覽器版本號(hào)
99.原生JavaScript半角轉(zhuǎn)換為全角函數(shù)
100.原生JavaScript全角轉(zhuǎn)換為半角函數(shù)
代碼片段
- 原生JavaScript實(shí)現(xiàn)字符串長(zhǎng)度截取
function cutstr(str, len) {
var temp;
var icount = 0;
var patrn = /[^\x00-\xff]/; // 匹配雙字節(jié)字符(包括漢字在內(nèi))
var strren = "";
for (var i = 0; i < str.length; i++) {
if (icount < len - 1) {
temp = str.substr(i, 1);
if (patrn.exec(temp) == null) {
icount = icount + 1;
} else {
icount = icount + 2;
}
} else {
break;
}
}
return strre + "...";
}
- 原生JavaScript獲取域名主機(jī)
function getHost(url) {
var host = "null";
if (typeof url == undefined || url === null) {
url = window.location.href;
}
var regex = /^\w+\:\/\/([^\/]*).*/;
var match = url.match(regex);
if (typeof match != undefined && match != null) {
host = match[1];
}
return host;
}
- 原生JavaScript清除空格
String.prototype.trim = function() {
var reExtraSpace = /^\s*(.*?)\s+$/;
return this.replace(reExtraSpace, "$1");
}
- 原生JavaScript替換全部
String.prototype.replaceAll = function(s1, s2) {
return this.replace(new RegExp(s1, "gm"), s2);
}
- 原生JavaScript轉(zhuǎn)義html標(biāo)簽
function HtmlEncode(text) {
return text.replace(/&/g, '&')
.replace(/\"/g, '"')
.replace(/</g, '<')
.replace(/>/g, '>');
}
- 原生JavaScript還原h(huán)tml標(biāo)簽
function HtmlDecode(text) {
return text.replace('&', /&/g)
.replace('"', /\"/g)
.replace('<', /</g)
.replace('>', />/g);
}
- 原生JavaScript判斷是否為數(shù)字類型
function isDigit(value) {
var patrn = /^[0-9]*$/;
if (patrn.exec(value) == null || value == "") {
return false
} else {
return true
}
}
- 原生JavaScript時(shí)間日期格式轉(zhuǎn)換
Date.prototype.Format = function(formatStr) {
var str = formatStr;
var Week = ['日', '一', '二', '三', '四', '五', '六'];
str = str.replace(/yyyy|YYYY/, this.getFullYear());
str = str.replace(/yy|YY/, (this.getYear() % 100) > 9 ? (this.getYear() % 100).toString() : '0' + (this.getYear() % 100));
str = str.replace(/MM/, (this.getMonth() + 1) > 9 ? (this.getMonth() + 1).toString() : '0' + (this.getMonth() + 1));
str = str.replace(/M/g, (this.getMonth() + 1));
str = str.replace(/w|W/g, Week[this.getDay()]);
str = str.replace(/dd|DD/, this.getDate() > 9 ? this.getDate().toString() : '0' + this.getDate());
str = str.replace(/d|D/g, this.getDate());
str = str.replace(/hh|HH/, this.getHours() > 9 ? this.getHours().toString() : '0' + this.getHours());
str = str.replace(/h|H/g, this.getHours());
str = str.replace(/mm/, this.getMinutes() > 9 ? this.getMinutes().toString() : '0' + this.getMinutes());
str = str.replace(/m/g, this.getMinutes());
str = str.replace(/ss|SS/, this.getSeconds() > 9 ? this.getSeconds().toString() : '0' + this.getSeconds());
str = str.replace(/s|S/g, this.getSeconds());
return str
}
- 原生JavaScript設(shè)置cookie值
function setCookie(name, value, Hours) {
var d = new Date();
var offset = 8;
var utc = d.getTime() + (d.getTimezoneOffset() * 60000);
var nd = utc + (3600000 * offset);
var exp = new Date(nd);
exp.setTime(exp.getTime() + Hours * 60 * 60 * 1000);
document.cookie = name + "=" + escape(value) + ";path=/;expires=" + exp.toGMTString() + ";domain=360doc.com;"
}
- 原生JavaScript獲取cookie值
function getCookie(name) {
var arr = document.cookie.match(new RegExp("(^| )" + name + "=([^;]*)(;|$)"));
if (arr != null) return unescape(arr[2]);
return null
}
- 原生JavaScript加入收藏夾
function AddFavorite(sURL, sTitle) {
try {
window.external.addFavorite(sURL, sTitle)
} catch(e) {
try {
window.sidebar.addPanel(sTitle, sURL, "")
} catch(e) {
alert("加入收藏失敗,請(qǐng)使用Ctrl+D進(jìn)行添加")
}
}
}
- 原生JavaScript設(shè)為首頁(yè)
function setHomepage() {
if (document.all) {
document.body.style.behavior = 'url(#default#homepage)';
document.body.setHomePage('http://***');
} else if (window.sidebar) {
if (window.netscape) {
try {
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect")
} catch(e) {
alert("該操作被瀏覽器拒絕冠跷,如果想啟用該功能南誊,請(qǐng)?jiān)诘刂窓趦?nèi)輸入 about:config,然后將項(xiàng) signed.applets.codebase_principal_support 值該為true")
}
}
var prefs = Components.classes['@mozilla.org/preferences-service;1'].getService(Components.interfaces.nsIPrefBranch);
prefs.setCharPref('browser.startup.homepage', 'http://***')
}
}
- 原生JavaScript判斷IE6
var ua = navigator.userAgent.toLowerCase();
var isIE6 = ua.indexOf("msie 6") > -1;
if (isIE6) {
try {
document.execCommand("BackgroundImageCache", false, true)
} catch(e) {}
}
- 原生JavaScript加載樣式文件
function LoadStyle(url) {
try {
document.createStyleSheet(url)
} catch(e) {
var cssLink = document.createElement('link');
cssLink.rel = 'stylesheet';
cssLink.type = 'text/css';
cssLink.href = url;
var head = document.getElementsByTagName('head')[0];
head.appendChild(cssLink)
}
}
- 原生JavaScript返回腳本內(nèi)容
function evalscript(s) {
if(s.indexOf('<script') == -1) return s;
var p = /<script[^\>]*?>([^\x00]*?)<\/script>/ig;
var arr = [];
while(arr = p.exec(s)) {
var p1 = /<script[^\>]*?src=\"([^\>]*?)\"[^\>]*?(reload=\"1\")?(?:charset=\"([\w\-]+?)\")?><\/script>/i;
var arr1 = [];
arr1 = p1.exec(arr[0]);
if(arr1) {
appendscript(arr1[1], '', arr1[2], arr1[3]);
} else {
p1 = /<script(.*?)>([^\x00]+?)<\/script>/i;
arr1 = p1.exec(arr[0]);
appendscript('', arr1[2], arr1[1].indexOf('reload=') != -1);
}
}
return s;
}
- 原生JavaScript清除腳本內(nèi)容
function stripscript(s) {
return s.replace(/<script.*?>.*?<\/script>/ig, '');
}
- 原生JavaScript動(dòng)態(tài)加載腳本文件
function appendscript(src, text, reload, charset) {
var id = hash(src + text);
if(!reload && in_array(id, evalscripts)) return;
if(reload && $(id)) {
$(id).parentNode.removeChild($(id));
}
evalscripts.push(id);
var scriptNode = document.createElement("script");
scriptNode.type = "text/javascript";
scriptNode.id = id;
scriptNode.charset = charset ? charset : (BROWSER.firefox ? document.characterSet : document.charset);
try {
if(src) {
scriptNode.src = src;
scriptNode.onloadDone = false;
scriptNode.onload = function () {
scriptNode.onloadDone = true;
JSLOADED[src] = 1;
};
scriptNode.onreadystatechange = function () {
if((scriptNode.readyState == 'loaded' || scriptNode.readyState == 'complete') && !scriptNode.onloadDone) {
scriptNode.onloadDone = true;
JSLOADED[src] = 1;
}
};
} else if(text){
scriptNode.text = text;
}
document.getElementsByTagName('head')[0].appendChild(scriptNode);
} catch(e) {}
}
- 原生JavaScript返回按ID檢索的元素對(duì)象
function $(id) {
return !id ? null : document.getElementById(id);
}
- 原生JavaScript返回瀏覽器版本內(nèi)容
function browserVersion(types) {
var other = 1;
for(i in types) {
var v = types[i] ? types[i] : i;
if(USERAGENT.indexOf(v) != -1) {
var re = new RegExp(v + '(\\/|\\s)([\\d\\.]+)', 'ig');
var matches = re.exec(USERAGENT);
var ver = matches != null ? matches[2] : 0;
other = ver !== 0 && v != 'mozilla' ? 0 : other;
}else {
var ver = 0;
}
eval('BROWSER.' + i + '= ver');
}
BROWSER.other = other;
}
- 原生JavaScript元素顯示的通用方法
function $(id) {
return !id ? null : document.getElementById(id);
}
function display(id) {
var obj = $(id);
if(obj.style.visibility) {
obj.style.visibility = obj.style.visibility == 'visible' ? 'hidden' : 'visible';
} else {
obj.style.display = obj.style.display == '' ? 'none' : '';
}
}
- 原生JavaScript中有insertBefore方法,可惜卻沒(méi)有insertAfter方法?用如下函數(shù)實(shí)現(xiàn)
function insertAfter(newChild, refChild) {
var parElem = refChild.parentNode;
if(parElem.lastChild == refChild){
refChild.appendChild(newChild);
}else{
parElem.insertBefore(newChild, refChild.nextSibling);
}
}
- 原生JavaScript中兼容瀏覽器綁定元素事件
function addEventSamp(obj, evt, fn){
if (obj.addEventListener) {
obj.addEventListener(evt, fn, false);
}else if(obj.attachEvent){
obj.attachEvent('on' + evt, fn);
}
}
- 原生JavaScript光標(biāo)停在文字的后面,文本框獲得焦點(diǎn)時(shí)調(diào)用
function focusLast(){
var e = event.srcElement;
var r =e.createTextRange();
r.moveStart('character',e.value.length);
r.collapse(true);
r.select();
}
- 原生JavaScript檢驗(yàn)URL鏈接是否有效
function getUrlState(URL) {
var xmlhttp = new ActiveXObject("microsoft.xmlhttp");
xmlhttp.Open("GET", URL, false);
try {
xmlhttp.Send();
} catch(e) {
} finally {
var result = xmlhttp.responseText;
if(result) {
if(xmlhttp.Status==200){
return true;
}else{
return false;
}
} else {
return false;
}
}
}
- 原生JavaScript格式化CSS樣式代碼
function formatCss(s){ //格式化代碼
s = s.replace(/\s*([\{\}\:\;\,])\s*/g, "$1");
s = s.replace(/;\s*;/g, ";"); //清除連續(xù)分號(hào)
s = s.replace(/\,[\s\.\#\d]*{/g, "{");
s = s.replace(/([^\s])\{([^\s])/g, "$1 {\n\t$2");
s = s.replace(/([^\s])\}([^\n]*)/g, "$1\n}\n$2");
s = s.replace(/([^\s]);([^\s\}])/g, "$1;\n\t$2");
return s;
}
- 原生JavaScript壓縮CSS樣式代碼
function yasuoCss (s) { //壓縮代碼
s = s.replace(/\/\*(.|\n)*?\*\//g, ""); //刪除注釋
s = s.replace(/\s*([\{\}\:\;\,])\s*/g, "$1");
s = s.replace(/\,[\s\.\#\d]*\{/g, "{"); //容錯(cuò)處理
s = s.replace(/;\s*;/g, ";"); //清除連續(xù)分號(hào)
s = s.match(/^\s*(\S+(\s+\S+)*)\s*$/); //去掉首尾空白
return (s == null) ? "" : s[1];
}
- 原生JavaScript獲取當(dāng)前路徑
var currentPageUrl = "";
if (typeof this.href === undefined) {
currentPageUrl = document.location.toString().toLowerCase();
}
else {
currentPageUrl = this.href.toString().toLowerCase();
}
- 原生JavaScript將IP地址轉(zhuǎn)成整型
function _ip2int(ip){
var num = 0;
ip = ip.split(".");
num = Number(ip[0]) * 256 * 256 * 256 + Number(ip[1]) * 256 * 256 + Number(ip[2]) * 256 + Number(ip[3]);
num = num >>> 0;
return num;
}
- 原生JavaScript整型解析為IP地址
function _int2iP(num){
var str;
var tt = new Array();
tt[0] = (num >>> 24) >>> 0;
tt[1] = ((num << 8) >>> 24) >>> 0;
tt[2] = (num << 16) >>> 24;
tt[3] = (num << 24) >>> 24;
str = String(tt[0]) + "." + String(tt[1]) + "." + String(tt[2]) + "." + String(tt[3]);
return str;
}
- 原生JavaScript實(shí)現(xiàn)checkbox全選與全不選
function checkAll() {
var selectall = document.getElementById("selectall");
var allbox = document.getElementsByName("allbox");
if (selectall.checked) {
for (var i = 0; i < allbox.length; i++) {
allbox[i].checked = true;
}
} else {
for (var i = 0; i < allbox.length; i++) {
allbox[i].checked = false;
}
}
}
- 原生JavaScript判斷是否移動(dòng)設(shè)備
function isMobile(){
if (typeof this._isMobile === 'boolean'){
return this._isMobile;
}
var screenWidth = this.getScreenWidth();
var fixViewPortsExperiment = rendererModel.runningExperiments.FixViewport || rendererModel.runningExperiments.fixviewport;
var fixViewPortsExperimentRunning = fixViewPortsExperiment && (fixViewPortsExperiment.toLowerCase() === "new");
if(!fixViewPortsExperiment){
if(!this.isAppleMobileDevice()){
screenWidth = screenWidth/window.devicePixelRatio;
}
}
var isMobileScreenSize = screenWidth < 600;
var isMobileUserAgent = false;
this._isMobile = isMobileScreenSize && this.isTouchScreen();
return this._isMobile;
}
- 原生JavaScript判斷是否移動(dòng)設(shè)備訪問(wèn)
function isMobileUserAgent() {
return (/iphone|ipod|android.*mobile|windows.*phone|blackberry.*mobile/i.test(window.navigator.userAgent.toLowerCase()));
}
- 原生JavaScript判斷是否蘋(píng)果移動(dòng)設(shè)備訪問(wèn)
function isAppleMobileDevice() {
return (/iphone|ipod|ipad|Macintosh/i.test(navigator.userAgent.toLowerCase()));
}
- 原生JavaScript判斷是否安卓移動(dòng)設(shè)備訪問(wèn)
function isAndroidMobileDevice(){
return (/android/i.test(navigator.userAgent.toLowerCase()));
}
- 原生JavaScript判斷是否Touch屏幕
function isTouchScreen() {
return (('ontouchstart' in window) || window.DocumentTouch && document instanceof DocumentTouch);
}
- 原生JavaScript判斷是否在安卓上的谷歌瀏覽器
function isNewChromeOnAndroid(){
if(this.isAndroidMobileDevice()){
var userAgent = navigator.userAgent.toLowerCase();
if((/chrome/i.test(userAgent))){
var parts = userAgent.split('chrome/');
var fullVersionString = parts[1].split(" ")[0];
var versionString = fullVersionString.split('.')[0];
var version = parseInt(versionString);
if(version >= 27){
return true;
}
}
}
return false;
}
- 原生JavaScript判斷是否打開(kāi)視窗
function isViewportOpen() {
return !!document.getElementById('wixMobileViewport');
}
- 原生JavaScript獲取移動(dòng)設(shè)備初始化大小
function getInitZoom() {
if(!this._initZoom) {
var screenWidth = Math.min(screen.height, screen.width);
if(this.isAndroidMobileDevice() && !this.isNewChromeOnAndroid()) {
screenWidth = screenWidth / window.devicePixelRatio;
}
this._initZoom = screenWidth /document.body.offsetWidth;
}
return this._initZoom;
}
- 原生JavaScript獲取移動(dòng)設(shè)備最大化大小
function getZoom(){
var screenWidth = (Math.abs(window.orientation) === 90) ? Math.max(screen.height, screen.width) : Math.min(screen.height, screen.width);
if(this.isAndroidMobileDevice() && !this.isNewChromeOnAndroid()){
screenWidth = screenWidth/window.devicePixelRatio;
}
var FixViewPortsExperiment = rendererModel.runningExperiments.FixViewport || rendererModel.runningExperiments.fixviewport;
var FixViewPortsExperimentRunning = FixViewPortsExperiment && (FixViewPortsExperiment === "New" || FixViewPortsExperiment === "new");
if(FixViewPortsExperimentRunning){
return screenWidth / window.innerWidth;
}else{
return screenWidth / document.body.offsetWidth;
}
}
- 原生JavaScript獲取移動(dòng)設(shè)備屏幕寬度
function getScreenWidth(){
var smallerSide = Math.min(screen.width, screen.height);
var fixViewPortsExperiment = rendererModel.runningExperiments.FixViewport || rendererModel.runningExperiments.fixviewport;
var fixViewPortsExperimentRunning = fixViewPortsExperiment && (fixViewPortsExperiment.toLowerCase() === "new");
if(fixViewPortsExperiment){
if(this.isAndroidMobileDevice() && !this.isNewChromeOnAndroid()){
smallerSide = smallerSide/window.devicePixelRatio;
}
}
return smallerSide;
}
- 原生JavaScript完美判斷是否為網(wǎng)址
function IsURL(strUrl) {
var regular = /^\b(((https?|ftp):\/\/)?[-a-z0-9]+(\.[-a-z0-9]+)*\.(?:com|edu|gov|int|mil|net|org|biz|info|name|museum|asia|coop|aero|[a-z][a-z]|((25[0-5])|(2[0-4]\d)|(1\d\d)|([1-9]\d)|\d))\b(\/[-a-z0-9_:\@&?=+,.!\/~%\$]*)?)$/i
if (regular.test(strUrl)) {
return true;
}
else {
return false;
}
}
- 原生JavaScript根據(jù)樣式名稱檢索元素對(duì)象
function getElementsByClassName(name) {
var tags = document.getElementsByTagName('*') || document.all;
var els = [];
for (var i = 0; i < tags.length; i++) {
if (tags[i].className) {
var cs = tags[i].className.split(' ');
for (var j = 0; j < cs.length; j++) {
if (name == cs[j]) {
els.push(tags[i]);
break;
}
}
}
}
return els;
}
- 原生JavaScript判斷是否以某個(gè)字符串開(kāi)頭
String.prototype.startWith = function (s) {
return this.indexOf(s) == 0;
}
- 原生JavaScript判斷是否以某個(gè)字符串結(jié)束
String.prototype.endWith = function (s) {
var d = this.length - s.length;
return (d >= 0 && this.lastIndexOf(s) == d);
}
- 原生JavaScript返回IE瀏覽器的版本號(hào)
function getIE(){
if (window.ActiveXObject){
var v = navigator.userAgent.match(/MSIE ([^;]+)/)[1];
return parseFloat(v.substring(0, v.indexOf(".")));
}
return false;
}
- 原生JavaScript獲取頁(yè)面高度
function getPageHeight() {
var g = document, a = g.body, f = g.documentElement, d = g.compatMode == "BackCompat"
? a
: g.documentElement;
return Math.max(f.scrollHeight, a.scrollHeight, d.clientHeight);
}
- 原生JavaScript獲取頁(yè)面scrollLeft
function getPageScrollLeft(){
var a = document;
return a.documentElement.scrollLeft || a.body.scrollLeft;
}
- 原生JavaScript獲取頁(yè)面可視寬度
function getPageViewWidth(){
var d = document, a = d.compatMode == "BackCompat"
? d.body
: d.documentElement;
return a.clientWidth; // 可視寬度為clientWidth
}
- 原生JavaScript獲取頁(yè)面寬度
// 考慮帶滾動(dòng)條的全部寬度
function getPageWidth(){
var g = document, a = g.body, f = g.documentElement, d = g.compatMode == "BackCompat"
? a
: g.documentElement;
return Math.max(f.scrollWidth, a.scrollWidth, d.clientWidth);
}
- 原生JavaScript獲取頁(yè)面scrollTop
function getPageScrollTop(){
var a = document;
return a.documentElement.scrollTop || a.body.scrollTop;
}
- 原生JavaScript獲取頁(yè)面可視高度
function getPageViewHeight() {
var d = document, a = d.compatMode == "BackCompat"
? d.body
: d.documentElement;
return a.clientHeight;
}
- 原生JavaScript跨瀏覽器添加事件
function addEvt(oTarget, sEvtType, fnHandle) {
if(!oTarget) {return;}
if(oTarget.addEventListener) {
oTarget.addEventListener(sEvtType, fnHandle, false);
} else if(oTarget.attachEvent) {
oTarget.attachEvent("on" + sEvtType, fnHandle);
} else {
oTarget["on" + sEvtType] = fnHandle;
}
}
- 原生JavaScript跨瀏覽器刪除事件
function delEvt(oTarget, sEvtType, fnHandle){
if(!oTarget) {return;}
if(oTarget.addEventListener) {
oTarget.addEventListener(sEvtType,fnHandle,false);
} else if(oTarget.attachEvent) {
oTarget.attachEvent("on" + sEvtType,fnHandle);
} else {
oTarget["on" + sEvtType] = fnHandle;
}
}
- 原生JavaScript去掉url前綴
function removeUrlPrefix(a) {
a = a.replace(/:/g,":").replace(/./g,".").replace(///g,"/");
while(trim(a).toLowerCase().indexOf("http://") == 0) {
a = trim(a.replace(/http:\/\//i,""));
}
return a;
}
- 原生JavaScript隨機(jī)數(shù)時(shí)間戳
function uniqueId() {
var a = Math.random, b = parseInt;
return Number(new Date()).toString()+b(10*a())+b(10*a())+b(10*a());
}
- 原生JavaScript全角半角轉(zhuǎn)換,iCase: 0全到半蜜托,1半到全抄囚,其他不轉(zhuǎn)化
function chgCase(sStr,iCase){
if(typeof sStr != "string" || sStr.length <= 0 || !(iCase === 0 || iCase == 1)){
return sStr;
}
var i,oRs=[],iCode;
if(iCase){/*半->全*/
for(i=0; i<sStr.length;i+=1){
iCode = sStr.charCodeAt(i);
if(iCode == 32){
iCode = 12288;
}else if(iCode < 127){
iCode += 65248;
}
oRs.push(String.fromCharCode(iCode));
}
}else{/*全->半*/
for(i=0; i<sStr.length;i+=1){
iCode = sStr.charCodeAt(i);
if(iCode == 12288){
iCode = 32;
}else if(iCode > 65280 && iCode < 65375){
iCode -= 65248;
}
oRs.push(String.fromCharCode(iCode));
}
}
return oRs.join("");
}
- 原生JavaScript確認(rèn)是否鍵盤(pán)有效輸入值
function checkKey(iKey){
if(iKey == 32 || iKey == 229){return true;} /*空格和異常*/
if(iKey>47 && iKey < 58){return true;} /*數(shù)字*/
if(iKey>64 && iKey < 91){return true;} /*字母*/
if(iKey>95 && iKey < 108){return true;} /*數(shù)字鍵盤(pán)1*/
if(iKey>108 && iKey < 112){return true;} /*數(shù)字鍵盤(pán)2*/
if(iKey>185 && iKey < 193){return true;} /*符號(hào)1*/
if(iKey>218 && iKey < 223){return true;} /*符號(hào)2*/
return false;
}
- 原生JavaScript獲取網(wǎng)頁(yè)被卷去的位置
function getScrollXY() {
return document.body.scrollTop ? {
x: document.body.scrollLeft,
y: document.body.scrollTop
}: {
x: document.documentElement.scrollLeft,
y: document.documentElement.scrollTop
}
}
- 原生JavaScript另一種正則日期格式化函數(shù)+調(diào)用方法
Date.prototype.format = function(format) { // author: meizz
var o = {
"M+" : this.getMonth() + 1, // month
"d+" : this.getDate(), // day
"h+" : this.getHours(), // hour
"m+" : this.getMinutes(), // minute
"s+" : this.getSeconds(), // second
"q+" : Math.floor((this.getMonth() + 3) / 3), // quarter
"S" : this.getMilliseconds() // millisecond
}
if(/(y+)/.test(format)) {
format=format.replace(RegExp.$1, (this.getFullYear()+"").substr(4 - RegExp.$1.length));
}
for(var k in o)if(new RegExp("("+ k +")").test(format)) {
format = format.replace(RegExp.$1, RegExp.$1.length==1 ? o[k] : ("00"+ o[k]).substr((""+ o[k]).length));
}
return format;
}
alert(new Date().format("yyyy-MM-dd hh:mm:ss"));
- 原生JavaScript時(shí)間個(gè)性化輸出功能
/*
1、< 60s, 顯示為“剛剛”
2橄务、>= 1min && < 60 min, 顯示與當(dāng)前時(shí)間差“XX分鐘前”
3幔托、>= 60min && < 1day, 顯示與當(dāng)前時(shí)間差“今天 XX:XX”
4、>= 1day && < 1year, 顯示日期“XX月XX日 XX:XX”
5蜂挪、>= 1year, 顯示具體日期“XXXX年XX月XX日 XX:XX”
*/
function timeFormat(time){
var date = new Date(time)
, curDate = new Date()
, year = date.getFullYear()
, month = date.getMonth() + 1
, day = date.getDate()
, hour = date.getHours()
, minute = date.getMinutes()
, curYear = curDate.getFullYear()
, curHour = curDate.getHours()
, timeStr;
if(year < curYear){
timeStr = year +'年'+ month +'月'+ day +'日 '+ hour +':'+ minute;
}else{
var pastTime = curDate - date
, pastH = pastTime/3600000;
if(pastH > curHour){
timeStr = month +'月'+ day +'日 '+ hour +':'+ minute;
}else if(pastH >= 1){
timeStr = '今天 ' + hour +':'+ minute +'分';
}else{
var pastM = curDate.getMinutes() - minute;
if(pastM > 1){
timeStr = pastM +'分鐘前';
}else{
timeStr = '剛剛';
}
}
}
return timeStr;
}
- 原生JavaScript解決offsetX兼容性問(wèn)題
// 針對(duì)火狐不支持offsetX/Y
function getOffset(e) {
var target = e.target, // 當(dāng)前觸發(fā)的目標(biāo)對(duì)象
eventCoord,
pageCoord,
offsetCoord;
// 計(jì)算當(dāng)前觸發(fā)元素到文檔的距離
pageCoord = getPageCoord(target);
// 計(jì)算光標(biāo)到文檔的距離
eventCoord = {
X : window.pageXOffset + e.clientX,
Y : window.pageYOffset + e.clientY
};
// 相減獲取光標(biāo)到第一個(gè)定位的父元素的坐標(biāo)
offsetCoord = {
X : eventCoord.X - pageCoord.X,
Y : eventCoord.Y - pageCoord.Y
};
return offsetCoord;
}
function getPageCoord(element) {
var coord = { X : 0, Y : 0 };
// 計(jì)算從當(dāng)前觸發(fā)元素到根節(jié)點(diǎn)為止重挑,
// 各級(jí) offsetParent 元素的 offsetLeft 或 offsetTop 值之和
while (element){
coord.X += element.offsetLeft;
coord.Y += element.offsetTop;
element = element.offsetParent;
}
return coord;
}
- 原生JavaScript常用的正則表達(dá)式
//正整數(shù)
/^[0-9]*[1-9][0-9]*$/;
//負(fù)整數(shù)
/^-[0-9]*[1-9][0-9]*$/;
//正浮點(diǎn)數(shù)
/^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$/;
//負(fù)浮點(diǎn)數(shù)
/^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$/;
//浮點(diǎn)數(shù)
/^(-?\d+)(\.\d+)?$/;
//email地址
/^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$/;
//url地址
/^[a-zA-z]+://(\w+(-\w+)*)(\.(\w+(-\w+)*))*(\?\S*)?$/;
//年/月/日(年-月-日、年.月.日)
/^(19|20)\d\d[- /.](0[1-9]|1[012])[- /.](0[1-9]|[12][0-9]|3[01])$/;
//匹配中文字符
/[\u4e00-\u9fa5]/;
//匹配帳號(hào)是否合法(字母開(kāi)頭棠涮,允許5-10字節(jié)谬哀,允許字母數(shù)字下劃線)
/^[a-zA-Z][a-zA-Z0-9_]{4,9}$/;
//匹配空白行的正則表達(dá)式
/\n\s*\r/;
//匹配中國(guó)郵政編碼
/[1-9]\d{5}(?!\d)/;
//匹配身份證
/\d{15}|\d{18}/;
//匹配國(guó)內(nèi)電話號(hào)碼
/(\d{3}-|\d{4}-)?(\d{8}|\d{7})?/;
//匹配IP地址
/((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){3}(2[0-4]\d|25[0-5]|[01]?\d\d?)/;
//匹配首尾空白字符的正則表達(dá)式
/^\s*|\s*$/;
//匹配HTML標(biāo)記的正則表達(dá)式
< (\S*?)[^>]*>.*?|< .*? />;
- 原生JavaScript實(shí)現(xiàn)返回頂部的通用方法
function backTop(btnId) {
var btn = document.getElementById(btnId);
var d = document.documentElement;
var b = document.body;
window.onscroll = set;
btn.style.display = "none";
btn.onclick = function() {
btn.style.display = "none";
window.onscroll = null;
this.timer = setInterval(function() {
d.scrollTop -= Math.ceil((d.scrollTop + b.scrollTop) * 0.1);
b.scrollTop -= Math.ceil((d.scrollTop + b.scrollTop) * 0.1);
if ((d.scrollTop + b.scrollTop) == 0) clearInterval(btn.timer, window.onscroll = set);
},
10);
};
function set() {
btn.style.display = (d.scrollTop + b.scrollTop > 100) ? 'block': "none";
}
};
backTop('goTop');
- 原生JavaScript獲得URL中的GET參數(shù)值
// 用法:如果地址是 test.htm?t1=1&t2=2&t3=3, 那么能取得:GET["t1"], GET["t2"], GET["t3"]
function get_get() {
querystr = window.location.href.split("?");
if(querystr[1]) {
var GETs = querystr[1].split("&"),
GET = new Array();
for(i = 0; i < GETs.length; i++){
tmp_arr = GETs[i].split("=");
key = tmp_arr[0];
GET[key] = tmp_arr[1];
}
}
return querystr[1];
}
- 原生JavaScript實(shí)現(xiàn)全選通用方法
function checkall(form, prefix, checkall) {
var checkall = checkall ? checkall : 'chkall';
for(var i = 0; i < form.elements.length; i++) {
var e = form.elements[i];
if(e.type=="checkbox"){
e.checked = form.elements[checkall].checked;
}
}
}
- 原生JavaScript實(shí)現(xiàn)全部取消選擇通用方法
function uncheckAll(form) {
for (var i = 0; i < form.elements.length; i++){
var e = form.elements[i];
if (e.name != 'chkall')
e.checked = !e.checked;
}
}
- 原生JavaScript實(shí)現(xiàn)打開(kāi)一個(gè)窗體通用方法
function openWindow(url,windowName,width,height){
var x = parseInt(screen.width / 2.0) - (width / 2.0);
var y = parseInt(screen.height / 2.0) - (height / 2.0);
var isMSIE= (navigator.appName == "Microsoft Internet Explorer");
if (isMSIE) {
var p = "resizable=1,location=no,scrollbars=no,width=";
p = p+width;
p = p+",height=";
p = p+height;
p = p+",left=";
p = p+x;
p = p+",top=";
p = p+y;
retval = window.open(url, windowName, p);
} else {
var win = window.open(url, "ZyiisPopup", "top=" + y + ",left=" + x + ",scrollbars=" + scrollbars + ",dialog=yes,modal=yes,width=" + width + ",height=" + height + ",resizable=no" );
eval("try { win.resizeTo(width, height); } catch(e) { }");
win.focus();
}
}
- 原生JavaScript判斷是否為客戶端設(shè)備
function client(o){
var b = navigator.userAgent.toLowerCase();
var t = false;
if (o == 'isOP'){
t = b.indexOf('opera') > -1;
}
if (o == 'isIE'){
t = b.indexOf('msie') > -1;
}
if (o == 'isFF'){
t = b.indexOf('firefox') > -1;
}
return t;
}
- 原生JavaScript獲取單選按鈕的值
function get_radio_value(field){
if(field && field.length){
for(var i = 0; i < field.length; i++){
if(field[i].checked){
return field[i].value;
}
}
}else {
return;
}
}
- 原生JavaScript獲取復(fù)選框的值
function get_checkbox_value(field) {
if(field && field.length){
for(var i = 0; i < field.length; i++){
if(field[i].checked && !field[i].disabled){
return field[i].value;
}
}
} else {
return;
}
}
- 原生JavaScript判斷是否為郵箱
function isEmail(str){
var re=/^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/;
if (re.test(str) != true) {
return false;
}else{
return true;
}
}
- 原生JavaScript判斷是否有列表中的危險(xiǎn)字符
function isValidReg(chars){
var re=/<|>|\[|\]|\{|\}|『|』|※||||§|||||||□||㊣|﹋|⊕|⊙|〒|ㄅ|ㄆ|ㄇ|ㄈ|ㄉ|ㄊ|ㄋ|ㄌ|ㄍ|ㄎ|ㄏ|ㄐ|ㄑ|ㄒ|ㄓ|ㄔ|ㄕ|ㄖ|ㄗ|ㄘ|ㄙ|(zhì)ㄚ|ㄛ|ㄜ|ㄝ|ㄞ|ㄟ|ㄢ|ㄣ|ㄤ|ㄥ|ㄦ|ㄧ|ㄨ|ㄩ|■|▄|▆|\*|@|#|\^|\\/;
if (re.test( chars) == true) {
return false;
}else{
return true;
}
}
- 原生JavaScript判斷字符串是否大于規(guī)定的長(zhǎng)度
function isValidLength(chars, len) {
if (chars.length < len) {
return false;
}
return true;
}
- 原生JavaScript判斷字符串是為網(wǎng)址不區(qū)分大小寫(xiě)
function isValidURL( chars ) {
var re=/^([hH][tT]{2}[pP]:\/\/|[hH][tT]{2}[pP][sS]:\/\/)(\S+\.\S+)$/;
if (!isNULL(chars)) {
chars = jsTrim(chars);
if (chars.match(re) == null)
return false;
else
return true;
}
return false;
}
- 原生JavaScript判斷字符串是否為小數(shù)
function isValidDecimal( chars ) {
var re=/^\d*\.?\d{1,2}$/;
if (chars.match(re) == null)
return false;
else
return true;
}
- 原生JavaScript判斷字符串是否為整數(shù)
function isNumber(chars) {
var re=/^\d*$/;
if (chars.match(re) == null)
return false;
else
return true;
}
- 原生JavaScript判斷字符串是否為浮點(diǎn)數(shù)
function isFloat(str) {
for(i=0;i<str.length;i++) {
if((str.charAt(i)<"0" || str.charAt(i)>"9")&& str.charAt(i) != '.') {
return false;
}
}
return true;
}
- 原生JavaScript判斷字符是否為A-Za-z英文字母
function isLetters(str) {
var re = /^[A-Za-z]+$/;
if (str.match(re) == null)
return false;
else
return true;
}
- 原生JavaScript判斷字符串是否郵政編碼
function isValidPost( chars ) {
var re=/^\d{6}$/;
if (chars.match(re) == null)
return false;
else
return true;
}
- 原生JavaScript判斷字符是否空NULL
function isNULL( chars ) {
if (chars == null)
return true;
if (jsTrim(chars).length == 0)
return true;
return false;
}
- 原生JavaScript用正則表達(dá)式提取頁(yè)面代碼中所有網(wǎng)址
var aa = document.documentElement.outerHTML.match(/(url\(|src=|href=)[\"\']*([^\"\'\(\)\<\>\[\] ]+)[\"\'\)]*|(http:\/\/[\w\-\.]+[^\"\'\(\)\<\>\[\] ]+)/ig).join("\r\n").replace(/^(src=|href=|url\()[\"\']*|[\"\'\>\) ]*$/igm,"");
alert(aa);
- 原生JavaScript用正則表達(dá)式清除相同的數(shù)組(低效率)
Array.prototype.unique = function() {
return this.reverse().join(",").match(/([^,]+)(?!.*\1)/ig).reverse();
}
- 原生JavaScript用正則表達(dá)式清除相同的數(shù)組(高效率)
String.prototype.unique = function() {
var x = this.split(/[\r\n]+/);
var y = '';
for(var i = 0; i < x.length; i++){
if(!new RegExp("^"+x[i].replace(/([^\w])/ig,"\\$1")+"$","igm").test(y)) {
y + = x[i]+"\r\n";
}
}
return y;
}
- 原生JavaScript用正則表達(dá)式按字母排序,對(duì)每行進(jìn)行數(shù)組排序
function SetSort(){
var text = K1.value.split(/[\r\n]/).sort().join("\r\n"); // 順序
var test = K1.value.split(/[\r\n]/).sort().reverse().join("\r\n"); // 反序
K1.value = (K1.value != text) ? text : test;
}
- 原生JavaScript字符串反序
function IsReverse(text) {
return text.split('').reverse().join('');
}
- 原生JavaScript用正則表達(dá)式清除html代碼中的腳本
function clear_script() {
K1.valu e= K1.value.replace(/<script.*?>[\s\S]*?<\/script>|\s+on[a-zA-Z]{3,16}\s?=\s?"[\s\S]*?"|\s+on[a-zA-Z]{3,16}\s?=\s?'[\s\S]*?'|\s+on[a-zA-Z]{3,16}\s?=[^ >]+/ig,"");
}
- 原生JavaScript動(dòng)態(tài)執(zhí)行JavaScript腳本
function javascript(){
try{
eval(K1.value);
}catch(e){
alert(e.message);
}
}
- 原生JavaScript動(dòng)態(tài)執(zhí)行VBScript腳本
function vbscript() {
try{
var script = document.getElementById("K1").value;
if(script.trim()=="") return;
window.execScript('On Error Resume Next \n'+script+'\n If Err.Number<>0 Then \n MsgBox "請(qǐng)輸入正確的VBScript腳本!",48,"腳本錯(cuò)誤!" \n End If',"vbscript")
} catch(e) {
alert(e.message);
}
}
- 原生JavaScript實(shí)現(xiàn)金額大寫(xiě)轉(zhuǎn)換函數(shù)
function transform(tranvalue) {
try {
var i = 1;
var dw2 = new Array("", "萬(wàn)", "億"); //大單位
var dw1 = new Array("拾", "佰", "仟"); //小單位
var dw = new Array("零", "壹", "貳", "叁", "肆", "伍", "陸", "柒", "捌", "玖"); //整數(shù)部分用
//以下是小寫(xiě)轉(zhuǎn)換成大寫(xiě)顯示在合計(jì)大寫(xiě)的文本框中
//分離整數(shù)與小數(shù)
var source = splits(tranvalue);
var num = source[0];
var dig = source[1];
//轉(zhuǎn)換整數(shù)部分
var k1 = 0; //計(jì)小單位
var k2 = 0; //計(jì)大單位
var sum = 0;
var str = "";
var len = source[0].length; //整數(shù)的長(zhǎng)度
for (i = 1; i <= len; i++) {
var n = source[0].charAt(len - i); //取得某個(gè)位數(shù)上的數(shù)字
var bn = 0;
if (len - i - 1 >= 0) {
bn = source[0].charAt(len - i - 1); //取得某個(gè)位數(shù)前一位上的數(shù)字
}
sum = sum + Number(n);
if (sum != 0) {
str = dw[Number(n)].concat(str); //取得該數(shù)字對(duì)應(yīng)的大寫(xiě)數(shù)字严肪,并插入到str字符串的前面
if (n == '0') sum = 0;
}
if (len - i - 1 >= 0) { //在數(shù)字范圍內(nèi)
if (k1 != 3) { //加小單位
if (bn != 0) {
str = dw1[k1].concat(str);
}
k1++;
} else { //不加小單位史煎,加大單位
k1 = 0;
var temp = str.charAt(0);
if (temp == "萬(wàn)" || temp == "億") //若大單位前沒(méi)有數(shù)字則舍去大單位
str = str.substr(1, str.length - 1);
str = dw2[k2].concat(str);
sum = 0;
}
}
if (k1 == 3) //小單位到千則大單位進(jìn)一
{
k2++;
}
}
//轉(zhuǎn)換小數(shù)部分
var strdig = "";
if (dig != "") {
var n = dig.charAt(0);
if (n != 0) {
strdig += dw[Number(n)] + "角"; //加數(shù)字
}
var n = dig.charAt(1);
if (n != 0) {
strdig += dw[Number(n)] + "分"; //加數(shù)字
}
}
str += "元" + strdig;
} catch(e) {
return "0元";
}
return str;
}
//拆分整數(shù)與小數(shù)
function splits(tranvalue) {
var value = new Array('', '');
temp = tranvalue.split(".");
for (var i = 0; i < temp.length; i++) {
value[i] = temp[i];
}
return value;
}
- 原生JavaScript常用的正則表達(dá)式大收集
匹配中文字符的正則表達(dá)式: [\u4e00-\u9fa5]
匹配雙字節(jié)字符(包括漢字在內(nèi)):[^\x00-\xff]
匹配空行的正則表達(dá)式:\n[\s| ]*\r
匹配 HTML 標(biāo)記的正則表達(dá)式:<(.*)>.*<\/\1>|<(.*) \/>
匹配首尾空格的正則表達(dá)式:(^\s*)|(\s*$)
匹配 IP 地址的正則表達(dá)式:/(\d+)\.(\d+)\.(\d+)\.(\d+)/g
匹配 Email 地址的正則表達(dá)式:\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*
匹配網(wǎng)址 URL 的正則表達(dá)式:http://(/[\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)?
sql 語(yǔ)句:^(select|drop|delete|create|update|insert).*$
非負(fù)整數(shù):^\d+$
正整數(shù):^[0-9]*[1-9][0-9]*$
非正整數(shù):^((-\d+)|(0+))$
負(fù)整數(shù):^-[0-9]*[1-9][0-9]*$
整數(shù):^-?\d+$
非負(fù)浮點(diǎn)數(shù):^\d+(\.\d+)?$
正浮點(diǎn)數(shù):^((0-9)+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$
非正浮點(diǎn)數(shù):^((-\d+\.\d+)?)|(0+(\.0+)?))$
英文字符串:^[A-Za-z]+$
英文大寫(xiě)串:^[A-Z]+$
英文小寫(xiě)串:^[a-z]+$
英文字符數(shù)字串:^[A-Za-z0-9]+$
英數(shù)字加下劃線串:^\w+$
E-mail地址:^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$
URL:^[a-zA-Z]+://(\w+(-\w+)*)(\.(\w+(-\w+)*))*(\?\s*)?$ 或:^http:\/\/[A-Za-z0-9]+\.[A-Za-z0-9]+[\/=\?%\-&_~`@[\]\':+!]*([^<>\"\"])*$
郵政編碼:^[1-9]\d{5}$
電話號(hào)碼:^((\(\d{2,3}\))|(\d{3}\-))?(\(0\d{2,3}\)|0\d{2,3}-)?[1-9]\d{6,7}(\-\d{1,4})?$
手機(jī)號(hào)碼:^((\(\d{2,3}\))|(\d{3}\-))?13\d{9}$
雙字節(jié)字符(包括漢字在內(nèi)):^\x00-\xff
匹配首尾空格:(^\s*)|(\s*$)
匹配 HTML 標(biāo)記:<(.*)>.*<\/\1>|<(.*) \/>
匹配空行:\n[\s| ]*\r
提取信息中的網(wǎng)絡(luò)鏈接:(h|H)(r|R)(e|E)(f|F) *= *('|")?(\w|\\|\/|\.)+('|"| *|>)?
提取信息中的郵件地址:\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*
提取信息中的圖片鏈接:(s|S)(r|R)(c|C) *= *('|")?(\w|\\|\/|\.)+('|"| *|>)?
提取信息中的 IP 地址:(\d+)\.(\d+)\.(\d+)\.(\d+)
提取信息中的中國(guó)手機(jī)號(hào)碼:(86)*0*13\d{9}
提取信息中的中國(guó)固定電話號(hào)碼:(\(\d{3,4}\)|\d{3,4}-|\s)?\d{8}
提取信息中的中國(guó)電話號(hào)碼(包括移動(dòng)和固定電話):(\(\d{3,4}\)|\d{3,4}-|\s)?\d{7,14}
提取信息中的中國(guó)郵政編碼:[1-9]{1}(\d+){5}
提取信息中的浮點(diǎn)數(shù)(即小數(shù)):(-?\d*)\.?\d+
提取信息中的任何數(shù)字 :(-?\d*)(\.\d+)?
IP:(\d+)\.(\d+)\.(\d+)\.(\d+)
電話區(qū)號(hào):^0\d{2,3}$
騰訊 QQ 號(hào):^[1-9]*[1-9][0-9]*$
帳號(hào)(字母開(kāi)頭,允許 5-16 字節(jié)驳糯,允許字母數(shù)字下劃線):^[a-zA-Z][a-zA-Z0-9_]{4,15}$
中文篇梭、英文、數(shù)字及下劃線:^[\u4e00-\u9fa5_a-zA-Z0-9]+$
- 原生JavaScript實(shí)現(xiàn)窗體改變事件resize的操作(兼容所有的瀏覽器)
(function(){
var fn = function(){
var w = document.documentElement ? document.documentElement.clientWidth : document.body.clientWidth
,r = 1255
,b = Element.extend(document.body)
,classname = b.className;
if(w < r){
// 當(dāng)窗體的寬度小于1255的時(shí)候執(zhí)行相應(yīng)的操作
}else{
// 當(dāng)窗體的寬度大于1255的時(shí)候執(zhí)行相應(yīng)的操作
}
}
if(window.addEventListener){
window.addEventListener('resize', function(){ fn(); });
}else if(window.attachEvent){
window.attachEvent('onresize', function(){ fn(); });
}
fn();
})();
- 原生JavaScript用正則清除空格分左右
function ltrim(s){ return s.replace( /^(\s*| *)/, ""); }
function rtrim(s){ return s.replace( /(\s*| *)$/, ""); }
function trim(s){ return ltrim(rtrim(s)); }
- 原生JavaScript判斷變量是否空值
/**
* 判斷變量是否空值
* undefined, null, '', false, 0, [], {} 均返回true酝枢,否則返回false
*/
function empty(v){
switch (typeof v){
case 'undefined' : return true;
case 'string' : if(trim(v).length == 0) return true; break;
case 'boolean' : if(!v) return true; break;
case 'number' : if(0 === v) return true; break;
case 'object' :
if(null === v) return true;
if(undefined !== v.length && v.length==0) return true;
for(var k in v){return false;} return true;
break;
}
return false;
}
- 原生JavaScript實(shí)現(xiàn)base64解碼
function base64_decode(data){
var b64 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
var o1, o2, o3, h1, h2, h3, h4, bits, i = 0,ac = 0,dec = "",tmp_arr = [];
if (!data) { return data; }
data += '';
do {
h1 = b64.indexOf(data.charAt(i++));
h2 = b64.indexOf(data.charAt(i++));
h3 = b64.indexOf(data.charAt(i++));
h4 = b64.indexOf(data.charAt(i++));
bits = h1 << 18 | h2 << 12 | h3 << 6 | h4;
o1 = bits >> 16 & 0xff;
o2 = bits >> 8 & 0xff;
o3 = bits & 0xff;
if (h3 == 64) {
tmp_arr[ac++] = String.fromCharCode(o1);
} else if (h4 == 64) {
tmp_arr[ac++] = String.fromCharCode(o1, o2);
} else {
tmp_arr[ac++] = String.fromCharCode(o1, o2, o3);
}
} while (i < data.length);
dec = tmp_arr.join('');
dec = utf8_decode(dec);
return dec;
}
95, 原生JavaScript實(shí)現(xiàn)utf8解碼
function utf8_decode(str_data){
var tmp_arr = [],i = 0,ac = 0,c1 = 0,c2 = 0,c3 = 0;str_data += '';
while (i < str_data.length) {
c1 = str_data.charCodeAt(i);
if (c1 < 128) {
tmp_arr[ac++] = String.fromCharCode(c1);
i++;
} else if (c1 > 191 && c1 < 224) {
c2 = str_data.charCodeAt(i + 1);
tmp_arr[ac++] = String.fromCharCode(((c1 & 31) << 6) | (c2 & 63));
i += 2;
} else {
c2 = str_data.charCodeAt(i + 1);
c3 = str_data.charCodeAt(i + 2);
tmp_arr[ac++] = String.fromCharCode(((c1 & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));
i += 3;
}
}
return tmp_arr.join('');
}
- 原生JavaScript獲取窗體可見(jiàn)范圍的寬與高
function getViewSize() {
var de = document.documentElement;
var db = document.body;
var viewW = de.clientWidth == 0 ? db.clientWidth : de.clientWidth;
var viewH = de.clientHeight == 0 ? db.clientHeight : de.clientHeight;
return Array(viewW ,viewH);
}
- 原生JavaScript判斷IE版本號(hào)(既簡(jiǎn)潔很洋、又向后兼容!)
var _IE = (function(){
var v = 3, div = document.createElement('div'), all = div.getElementsByTagName('i');
while (
div.innerHTML = '<!--[if gt IE ' + (++v) + ']><i></i><![endif]-->',
all[0]
);
return v > 4 ? v : false ;
}());
- 原生JavaScript獲取瀏覽器版本號(hào)
function browserVersion(types) {
var other = 1;
for (i in types) {
var v = types[i] ? types[i] : i;
if (USERAGENT.indexOf(v) != -1) {
var re = new RegExp(v + '(\\/|\\s|:)([\\d\\.]+)', 'ig');
var matches = re.exec(USERAGENT);
var ver = matches != null ? matches[2] : 0;
other = ver !== 0 && v != 'mozilla' ? 0 : other;
} else {
var ver = 0;
}
eval('BROWSER.' + i + '= ver');
}
BROWSER.other = other;
}
- 原生JavaScript半角轉(zhuǎn)換為全角函數(shù)
function ToDBC(str){
var result = '';
for(var i=0; i < str.length; i++){
code = str.charCodeAt(i);
if(code >= 33 && code <= 126){
result += String.fromCharCode(str.charCodeAt(i) + 65248);
}else if (code == 32){
result += String.fromCharCode(str.charCodeAt(i) + 12288 - 32);
}else{
result += str.charAt(i);
}
}
return result;
}
- 原生JavaScript全角轉(zhuǎn)換為半角函數(shù)
function ToCDB(str){
var result = '';
for(var i=0; i < str.length; i++){
code = str.charCodeAt(i);
if(code >= 65281 && code <= 65374){
result += String.fromCharCode(str.charCodeAt(i) - 65248);
}else if (code == 12288){
result += String.fromCharCode(str.charCodeAt(i) - 12288 + 32);
}else{
result += str.charAt(i);
}
}
return result;
}