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;
}
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('');
}
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;
}
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;
}
function clear_script(html){
return html.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,"");
}
function getStyle(oElm, strCssRule){
var strValue = "";
if(document.defaultView && document.defaultView.getComputedStyle){
strValue = document.defaultView.getComputedStyle(oElm, "").getPropertyValue(strCssRule);
}
else if(oElm.currentStyle){
strCssRule = strCssRule.replace(/\-(\w)/g, function (strMatch, p1){
return p1.toUpperCase();
});
strValue = oElm.currentStyle[strCssRule];
}
return strValue;
}
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;
}
function compressCss (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];
}
//正整數(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*)?$/;
或:^http:\/\/[A-Za-z0-9]+\.[A-Za-z0-9]+[\/=\?%\-&_~`@[\]\':+!]*([^<>\"\"])*$
//年/月/日(年-月-日、年.月.日)
/^(19|20)\d\d[- /.](0[1-9]|1[012])[- /.](0[1-9]|[12][0-9]|3[01])$/;
//匹配中文字符
/[\u4e00-\u9fa5]/;
//匹配賬號(hào)是否合法(字母開頭,允許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*?)[^>]*>.*?|< .*? />;
//sql 語句
^(select|drop|delete|create|update|insert).*$
//提取信息中的網(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ó)郵政編碼
[1-9]{1}(\d+){5}
//提取信息中的浮點(diǎn)數(shù)(即小數(shù))
(-?\d*)\.?\d+
//提取信息中的任何數(shù)字
(-?\d*)(\.\d+)?
//電話區(qū)號(hào)
^0\d{2,3}$
//騰訊 QQ 號(hào)
^[1-9]*[1-9][0-9]*$
//賬號(hào)(字母開頭,允許 5-16 字節(jié),允許字母數(shù)字下劃線)
^[a-zA-Z][a-zA-Z0-9_]{4,15}$
//中文、英文、數(shù)字及下劃線
^[\u4e00-\u9fa5_a-zA-Z0-9]+$
function number_format(number, decimals, dec_point, thousands_sep) {
/*
* 參數(shù)說明:
* number:要格式化的數(shù)字
* decimals:保留幾位小數(shù)
* dec_point:小數(shù)點(diǎn)符號(hào)
* thousands_sep:千分位符號(hào)
* */
number = (number + '').replace(/[^0-9+-Ee.]/g, '');
var n = !isFinite(+number) ? 0 : +number,
prec = !isFinite(+decimals) ? 0 : Math.abs(decimals),
sep = (typeof thousands_sep === 'undefined') ? ',' : thousands_sep,
dec = (typeof dec_point === 'undefined') ? '.' : dec_point,
s = '',
toFixedFix = function (n, prec) {
var k = Math.pow(10, prec);
return '' + Math.ceil(n * k) / k;
};
s = (prec ? toFixedFix(n, prec) : '' + Math.round(n)).split('.');
var re = /(-?\d+)(\d{3})/;
while (re.test(s[0])) {
s[0] = s[0].replace(re, "$1" + sep + "$2");
}
if ((s[1] || '').length < prec) {
s[1] = s[1] || '';
s[1] += new Array(prec - s[1].length + 1).join('0');
}
return s.join(dec);
}
var num = number_format(1234567.089, 2, ".", ",");//1,234,567.09
// 判斷某個(gè)對(duì)象是否有指定的className
function hasClass(ele,cls) {
return ele.className.match(new RegExp('(\\s|^)'+cls+'(\\s|$)'));
}
// 給指定對(duì)象添加className
function addClass(ele,cls) {
if (!this.hasClass(ele,cls)) ele.className += " "+cls;
}
// 刪除className
function removeClass(ele,cls) {
if (hasClass(ele,cls)) {
var reg = new RegExp('(\\s|^)'+cls+'(\\s|$)');
ele.className=ele.className.replace(reg,' ');
}
}
// 正則:
/^([^:]+):\/\/(?:([^:@]+):?([^@]*)@)?(?:([^/?#:]+):?(\d*))([^?#]*)(?:\?([^#]+)?)?(?:#(.+)?)?$/
// 結(jié)果格式:
Array
[scheme] => http
[host] => quchao.com
[user] => user
[pass] => pass
[path] => /about-me
[query] => t=100102
[fragment] => hash
)
// demo:
'http://user:pass@xuanfenge.com:80/category/?s=css3#first'
.match(/^([^:]+):\/\/(?:([^:@]+):?([^@]*)@)?(?:([^/?#:]+):?(\d*))([^?#]*)(?:\?([^#]+)?)?(?:#(.+)?)?$/);
// 結(jié)果
["http://user:pass@xuanfenge.com:80/category/?s=css3#first", "http", "user", "pass", "xuanfenge.com", "80", "/category/", "s=css3", "first"]
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>隱藏功能</title>
</head>
<body>
<div id="d1">
<div id="fullText">
人工智能,英文縮寫為AI。它是研究、開發(fā)用于模擬、延伸和擴(kuò)展人的智能的理論、方法、技術(shù)及應(yīng)用系統(tǒng)的一門新的技術(shù)科學(xué)。
人工智能是計(jì)算機(jī)科學(xué)的一個(gè)分支,它企圖了解智能的實(shí)質(zhì),并生產(chǎn)出一種新的能以人類智能相似的方式做出反應(yīng)的智能機(jī)器,該領(lǐng)域的研究包括機(jī)器人、語言識(shí)別、圖像識(shí)別、自然語言處理和專家系統(tǒng)等。人工智能從誕生以來,理論和技術(shù)日益成熟,應(yīng)用領(lǐng)域也不斷擴(kuò)大,可以設(shè)想,未來人工智能帶來的科技產(chǎn)品,將會(huì)是人類智慧的“容器”。人工智能可以對(duì)人的意識(shí)、思維的信息過程的模擬。人工智能不是人的智能,但能像人那樣思考、也可能超過人的智能。
</div>
<div id="subText"></div><a id="btn" onclick="change()" style="color: blue;"></a>
</div>
<script>
var text;
function show() {
text = document.getElementById("fullText").innerHTML;
document.getElementById("fullText").innerHTML = "";
document.getElementById("subText").style.float = "left";
document.getElementById("btn").style.float = "left";
if(text.length > 20) {
document.getElementById("subText").innerHTML = text.substring(0, 20);
document.getElementById("btn").innerHTML = "...查看全文";
} else {
document.getElementById("subText").innerHTML = text;
document.getElementById("btn").innerHTML = "";
}
}
function change() {
var t = document.getElementById("btn");
var tt = document.getElementById("subText");
if(t.innerHTML == "...查看全文") {
tt.innerHTML = text;
t.innerHTML = "收起"
} else {
tt.innerHTML = text.substring(0, 20);
t.innerHTML = "...查看全文"
}
}
show();
</script>
</body>
</html>
聯(lián)系客服