vars=xn.substr("abcdefg",0,-3);console.log(s);
//結果:abcd
Object.keys()
Object.keys()
Object.keys(obj)
【功能】
返回一個數組,包含對象的的所有的 Keys。
【參數】
obj:對象
【用例】
varobj={"username":"Jack","email":"<jack@gmail.com>"};var arr=Object.keys(obj);
console.log(arr);
//結果:\["username", "email"\]
?>
Object.length()
Object.length()
Object.length(obj)
【功能】
返回對象包含的元素的個數。。
【參數】
obj:對象
【用例】
varobj={"username":"Jack","email":"<jack@gmail.com>"};var n=Object.length(obj);
console.log(n);
//結果:2
?>
Object.count()
Object.count()
Object.count(obj)
【功能】
返回對象包含的元素的個數,不包含繼承而來的 Key。
【參數】
obj:對象
【用例】
varobj={"username":"Jack","email":"<jack@gmail.com>"};var n=Object.count(obj);
console.log(n);
//結果:2
?>
xn.htmlspecialchars()
xn.htmlspecialchars()
xn.htmlspecialchars(s)
【功能】
對字符串進行 HTML 轉義。
PHP htmlspecialchars() 的 JS 版本。
【參數】
s:字符串對象
【用例】
var s="<b>Hello</b>";
var s2=xn.htmlspecialchars(s);console.log(s2)
//結果:<b>Hello</b>
?>
xn.urlencode()
xn.urlencode()
xn.urlencode(s)
【功能】
對字符串進行安全的url encode轉義,JS內置的字符編碼為UNICODE,會被編碼為UTF-8。編碼后的字符串僅僅包含 字母、數字、下劃線,可以被安全的通過URL傳遞。
XiunoPHP xn\_urlencode() 的 JS 版本。
【參數】
s:字符串對象
【用例】
var s="中國";
var s2=xn.urlencode(s);console.log(s2)
//結果:\_E4\_B8\_AD\_E5\_9B\_BD
?>
xn.urldecode()
xn.urldecode()
xn.urldecode(s)
【功能】
對 xn.urlencode() 編碼過的字符串進行解碼。XiunoPHP xn\_urldecode() 的 JS 版本。
【參數】
s:字符串對象
【用例】
var s="\_E4\_B8\_AD\_E5\_9B\_BD";var s2=xn.urldecode(s);console.log(s2)
//結果:中國
?>
xn.nl2br()
xn.nl2br(s)
xn.nl2br(s)
【功能】
將換行 \\r\\n 替換為
PHP nl2br() 的 JS 版本。
【參數】
s:字符串對象
【用例】
var s="Hello \\r\\nWorld";var s2=xn.nl2br(s);console.log(s2)
//結果:Hello <br> World
?>
xn.time()
xn.time()
xn.time()
【功能】
獲取當前的 UNIX 時間戳PHP time() 的 JS 版本。
【用例】
var t=xn.time();console.log(t)
//結果:1474781352
?>
xn.intval()
xn.intval()
xn.intval(s)
【功能】
將字符串轉為INT類型,不會出現NaN類型,格式不良好返回0。PHP intval() 的JS版本。
【參數】
s:字符串對象
【用例】
var n=xn.intval("123個");console.log(n)
//結果:123
?>
xn.floatval()
xn.floatval()
xn.floatval(s)
【功能】
將字符串轉為float類型,不會出現NaN類型,格式不良好返回0。PHP floatval() 的JS版本。
【參數】
s:字符串對象
【用例】
var n=xn.intval("123.45個");console.log(n)
//結果:123.45
?>
xn.isset()
xn.isset(obj)
xn.isset(obj)
【功能】
判斷一個變量是否被定義過PHP isset() 的 JS 版本。
【參數】
obj:對象
【用例】
var r=xn.isset(var1);console.log(r)
//結果:false
?>
xn.empty()
xn.empty(obj)
xn.empty(obj)
【功能】
判斷一個變量是否為空,以下值都會被當做空,而返回 true0, '', '0', \[\], {}, null, undefined, unknown
PHP empty() 的 JS 版本。
【參數】
obj:對象
【用例】
var r=xn.empty(window.xxx);console.log(r)
//結果:false
?>
xn.ceil()
xn.ceil()
xn.ceil(n)
【功能】
對一個數取整,向上圓整。PHP ceil() 的 JS 版本。
【參數】
n:數值對象
【用例】
var r=xn.ceil('0.2');console.log(r)
//結果:1
?>
xn.round()
xn.round()
xn.round(n)
【功能】
對一個數取整,四舍五入。PHP round() 的 JS 版本。
【參數】
n:數值對象
【用例】
var r=xn.round('0.6');console.log(r)
//結果:1
?>
xn.floor()
xn.floor()
xn.floor(n)
【功能】
對一個數取整,四舍五入。PHP floor() 的 JS 版本。
【參數】
n:數值對象
【用例】
var r=xn.floor('0.2');console.log(r)
//結果:0
?>
xn.strtolower()
xn.strtolower()
xn.strtolower(s)
【功能】
對字符串轉為小寫
PHP strtolower() 的 JS 版本。
【參數】
s:字符串對象
【用例】
var s=xn.strtolower('Abcd');console.log(s)
//結果:abcd
?>
xn.strtoupper()
xn.strtoupper()
xn.strtoupper(s)
【功能】
對字符串轉為小寫
PHP strtoupper() 的 JS 版本。
【參數】
s:字符串對象
【用例】
var s=xn.strtoupper('Abcd');console.log(s)
//結果:ABCD
?>
xn.json\_encode()
xn.json\_encode()
xn.json\_encode(obj)
【功能】
對obj進行json編碼,返回編碼后的字符串。PHPjson\_encode() 的JS版本。
【參數】
obj:對象
【用例】
varobj={username:"Jack",email:"<jack@gmail.com>"};var s=xn.json\_encode(obj);
console.log(s)
//結果:"{\\"username\\":\\"Jack\\",\\"email\\":\\"jack@gmail.com\\"};"
?>
xn.json\_decode()
xn.json\_decode()
xn.json\_decode(s)
【功能】
對 s 進行 json 解碼,返回解碼后的對象。PHP json\_encode() 的 JS 版本。
【參數】
s:字符串對象
【用例】
var s="{\\"username\\":\\"Jack\\",\\"email\\":\\"jack@gmail.com\\"};"var obj=xn.json\_decode(s);
console.log(obj)
//結果:{username: "Jack", email: "<jack@gmail.com>"}
?>
xn.min()
xn.min()
xn.min(...)
【功能】
返回參數中最小的值。PHP min() 的 JS 版本。
【參數】
...:不定個數的變參
【用例】
var n=xn.min(3,1,2,4,5);console.log(n)
//結果:1
?>
xn.max()
xn.max()
xn.max(...)
【功能】
返回參數中最大的值。PHP max() 的 JS 版本。
【參數】
...:不定個數的變參
【用例】
var n=xn.max(3,1,2,4,5);console.log(n)
//結果:5
?>
xn.str\_replace()
xn.str\_replace()
xn.str\_replace(s,d,str)
【功能】
將 str 中的 s 字符串替換為 d 字符串。PHP str\_replace() 的 JS 版本。
【用例】
vars=xn.str\_replace('a','b','abc');console.log(s)
//結果:"bbc"
?>
xn.strpos()
xn.strpos()
xn.strpos(str,s)
【功能】
返回字符串 str 中 s 字符第一次出現的位置。PHP strrpos() 的 JS 版本。
【參數】
str:在該字符串查找s:待查找的字符串
【用例】
varn=xn.strpos("123.jpg.php","jpg");console.log(n)
//結果:3
?>
xn.strrpos()
xn.strrpos()
xn.strrpos(str,s)
【功能】
返回字符串 str 中 s 字符最后出現的位置。PHP strrpos() 的 JS 版本。
【參數】
str:在該字符串查找s:待查找的字符串
【用例】
varn=xn.strrpos("123.jpg.jpg.php","jpg");console.log(n)
//結果:8
?>
xn.substr()
xn.substr()
xn.substr(str,start,len)
【功能】
對字符串str進行截取,從start指定位置開始,截取len長度,支持負數。PHPsubstr() 的JS版本。
【參數】
str:對該字符串進行截取start:開始位置
len:截取的長度,負數表示從后往前的偏移量
【用例】
vars=xn.substr("123456",0,-1);console.log(s)
//結果:123456
?>
xn.explode()
xn.explode()
xn.explode(sep,s)
【功能】
用字符串sep對字符串s進行進行分割,返回一個數組。PHP explode() 的JS版本。
【參數】
sep:分隔符
s:對該字符串進行分割
【用例】
vararr=xn.explode(".","abc.jpg");console.log(arr)
//結果:\["abc", "jpg"\]
?>
xn.implode()
xn.implode()
xn.implode(glur,arr)
【功能】
用數組arr通過glur進行合并,返回合并后的對字符串。PHPimplode() 的JS版本。
【參數】
glur:分隔符
arr:對該數組進行合并
【用例】
vars=xn.implode(".",\["abc","jpg"\]);console.log(s)
//結果:"abc.jpg"
?>
xn.array\_merge()
xn.array\_merge()
xn.array\_merge(arr1,arr2)
【功能】
將數組arr1和arr2進行合并,返回合并后的數組。PHParray\_merge() 的JS版本。
【參數】
arr1:數組1
arr2:數組2
【用例】
vararr=xn.array\_merge(\["a","b"\],\["c","d"\]);console.log(arr)
//結果:\["a", "b", "c", "d"\]
?>
xn.array\_diff()
xn.array\_diff()
xn.array\_diff(arr1,arr2)
【功能】
返回存在于$arr1,但不存在于$arr2的元素集合的數組。PHParray\_diff() 的JS版本。
【參數】
arr1:數組1
arr2:數組2
【用例】
vararr=xn.array\_diff(\["a","b"\],\["b","c","d"\]);console.log(arr)
//結果:\["a"\]
?>
xn.array\_keys()
xn.array\_keys()
xn.array\_keys(obj)
【功能】
返回一個數組,包含對象中所有的 key 值PHP array\_keys() 的 JS 版本。
【參數】
obj:對象
【用例】
varobj={"username":"Jack","email":"<jack@gmail.com>"};var arr=xn.array\_keys(obj);
console.log(arr)
//結果:\["username", "email"\]
?>
xn.array\_values()
xn.array\_values()
xn.array\_values(obj)
【功能】
返回一個數組,包含對象中所有的value的值PHP array\_values() 的JS版本。
【參數】
obj:對象
【用例】
varobj={"username":"Jack","email":"<jack@gmail.com>"};var arr=xn.array\_values(obj);
console.log(arr)
//結果:\["Jack", "<jack@gmail.com>"\]
?>
xn.in\_array()
xn.in\_array()
xn.in\_array(v,arr)
【功能】
判斷 v 是否在 arr 當中。PHP in\_array() 的 JS 版本。
【參數】
v:查找的對象
arr:從這個數組進行查找
【用例】
varr=xn.in\_array(3,\[3,2,1,4,5\]);console.log(r)
//結果:true
?>
xn.rand()
xn.rand()
xn.rand(n)
【功能】
生成一個位數為 n 的隨機字符串。XiunoPHP xn\_rand() 的 JS 版本。
【參數】
n:隨機字符串位數
【用例】
var s=xn.rand(6);console.log(s)
//結果:"kd3i9w"
?>
xn.template()
xn.template()
xn.template(s,json)
【功能】
對字符串進行替換,按照 json 指定的 key value。
【參數】
s:對此字符串進行替換,一般是HTML模板
json:對象
【用例】
vars=xn.template("Hi,{username}",{"username":"Jack"});console.log(s)
//結果:"Hi, Jack"
?>
xn.is\_mobile()
xn.is\_mobile()
xn.is\_mobile(s)
【功能】
判斷字符串是否為手機號碼格式
【參數】
s:包含手機號碼的字符串
【用例】
varr=xn.is\_mobile("18812345678");console.log(r)
//結果:true
?>
xn.is\_email()
xn.is\_email()
xn.is\_email(s)
【功能】
判斷字符串是否為 Email 格式
【參數】
s:包含Email的字符串
【用例】
varr=xn.is\_email("<abc@gmail.com>");console.log(r)
//結果:true
?>
xn.is\_string()
xn.is\_string()
xn.is\_string(obj)
【功能】
判斷是否為字符串對象
【參數】
obj:對象
【用例】
var r=xn.is\_string("abc");console.log(r)
//結果:true
?>
xn.is\_function()
xn.is\_function()
xn.is\_function(obj)
【功能】
判斷是否為函數對象
【參數】
obj:對象
【用例】
vara=function(){alert(123);};var r=xn.is\_function(a);
console.log(r)
//結果:true
?>
xn.is\_array()
xn.is\_array()
xn.is\_array(obj)
【功能】
判斷是否為函數對象
【參數】
obj:對象
【用例】
var a=\[1,2,3\];
var r=xn.is\_function(a);console.log(r)
//結果:true
?>
xn.is\_number()
xn.is\_number()
xn.is\_number(obj)
【功能】
判斷是否為數值對象
【參數】
obj:對象
【用例】
var a=123;
var r=xn.is\_regexp(a);console.log(r)
//結果:true
?>
xn.is\_regexp()
xn.is\_regexp()
xn.is\_regexp(obj)
【功能】
判斷是否為正則表達式對象
【參數】
obj:對象
【用例】
var a=/^\\w+/;
var r=xn.is\_regexp(a);console.log(r)
//結果:true
?>
xn.is\_object()
xn.is\_object()
xn.is\_object(obj)
【功能】
判斷是否為對象
【參數】
obj:對象
【用例】
var a={};
var r=xn.is\_object(a);console.log(r)
//結果:true
?>
xn.is\_element()
xn.is\_element()
xn.is\_element(obj)
【功能】
判斷是否為 HTML 元素。nodeType == 1
【參數】
obj:對象
【用例】
var a=document.body;var r=xn.is\_element(a);
console.log(r)
//結果:true
?>
xn.lang()
xn.lang()
xn.lang(key,arr)
【功能】
語言包功能函數
【參數】
key:查找語言包的key arr:替換的變量
【用例】
var lang={
"login\_successfully":"{username},登陸成功!"
}
vars=xn.lang("login\_successfully",{username:"Jack"});console.log(s)
//結果:Jack,登陸成功!
?>
xn.url()
xn.url()
xn.url(u,url\_rewrite)
【功能】
生成 URL ,格式與 XiunoPHP 保持一致。
【參數】
u:URL url\_rewrite:格式
【用例】
var s=xn.url("user-login");console.log(s)
//結果:"?user-login.htm"
?>
xn.image\_resize()
xn.image\_resize()
xn.image\_resize(file\_base64\_data,callback,options)
【功能】
對圖片進行縮放
【參數】
file\_base64\_data:圖片的base64編碼數據。
callback:處理完以后的回調函數:
function(code,message) {
// code = 0
// message = {width: width, height: height, data:s}
}
options:選項:
{
width:1200,
height:2400,
action:"thumb",// clip
filetype:"jpg",//如果不指定,則與原來的base64中指定的格式保持一致
qulity:0.7, //圖片質量。
}
【用例】
var imgdata="data:image/gif xxxx";varcallback=function(code,message){
if(code!=0)returnalert(message)console.log(message);
//結果:{width: width, height: height, data: s}
}
var options={width:1200};xn.image\_resize(file\_base64\_data,callback,options);
xn.upload\_file()
xn.upload\_file()

xn.upload\_file(file,upload\_url,postdata,complete\_callback,progress\_callback,thumb\_callback)
【功能】
通過 POST 方式上傳 base64 編碼過的文件(可以設置對圖片進行縮略和裁切)
【參數】
file:文件對象upload\_url:服務器URL
postdata:POST數據,格式:[username=Jack&email=jack@gmail.com](mailto:username%3DJack%26email%3Djack@gmail.com)complete\_callback: 完成后的回調函數:
function(code,message) {
// code為服務端返回的json數據
// message為服務端返回的json數據
}
progress\_callback:進度回調函數:
function(percent) {
// percent為數值:0 - 100
}
thumb\_callback:可選:縮略圖回調函數:function(base64\_data) {
//此處可以用來顯示縮略圖,一般不需要。
}
【用例】
varfile=e.target.files\[0\];//文件控件onchange后觸發的event;varupload\_url='xxx.php';//服務端地址
varpostdata={width:2048,height:4096,action:'thumb',filetype:'jpg'}
;
var progress=function(percent) {console.log('progress:'+percent); }};/
/如果是圖片,會根據此項設定進行縮略和剪切thumb|clip
xn.upload\_file(file,upload\_url,postdata,function(code,json){
//成功
if(code==0) {console.log(json.url);console.log(json.width);console.log(json.height);

}else{
alert(json);
}
},progress);
$.location()
$.location()
$.location(href)
【功能】
等價于 window.location = href;
【參數】
href:跳轉的URL
【用例】
$.location("user-login.htm");
$.pdata()
$.pdata()
$.pdata(key,value)
【功能】
存儲數據到瀏覽器端的 sessionStorage 對象當中,可以保存比 Cookie 大很多的數據,并且不會被發送到服務端。
【參數】
key:鍵名value:鍵值
【用例】
$.pdata('key1','value1');
console.log($.pdata('key1'));
//結果:"value1"
$.cookie()
$.cookie()
$.cookie(name,value,time,path)
【功能】
設置或者讀取客戶端 Cookie,會隨瀏覽器發送到服務器。
【參數】
name:cookie名
value:cookie值
time:過期時間,單位為秒。
path:路徑
【用例】
$.cookie('key1','value1');console.log($.cookie('key1'));
//結果:"value1"
$.xget()
$.xget()
$.xget(url,callback,retry)
【功能】
AJAX 請求服務端。
與 $.get() 不同在于,當服務器返回非 json 數據的時候,$.xget() 能返回錯誤回調。
【參數】
url:AJAX請求的URL callback:回調函數retry:重試次數
【用例】
$.xget('user-login.htm',function(code,message){if(code==0) {
alert('成功');
}else{
alert('錯誤:'+message);
}
})
$.xpost()
$.xpost()
$.xpost(url,postdata,callback,progress\_callback)
【功能】
AJAX POST 請求服務端。
與$.post() 不同在于,當服務器返回非json數據的時候,$.xpost() 能返回錯誤回調,并且能指定進度回調函數。
【參數】
url:AJAX請求的URL callback:回調函數
progress\_callback:進度回調函數,參數為一個數值:0-100
【用例】
$.xpost('user-login.htm',"username=Jack",function(code,message){if(code==0) {
alert('成功');
}else{
alert('錯誤:'+message);
}
})
$.require()
$.require()
$.require(...callback)
【功能】
異步加載 js, 加載成功以后 callback
【參數】
...:js文件的URL
callback:最后一個參數為回調函數
【用例】
$.require('1.js','2.js',function(){alert('after allloaded');
});
$.require(\['1.js','2.js',function(){alert('after allloaded');
}\]);
$.require\_css()
$.require\_css()
$.require\_css(filename)
【功能】
異步加載 css
【參數】
filename:css文件的URL
【用例】
$.require('1.css');
$.each\_sync()
$.each\_sync()
$.each\_sync(array,func,callback)
【功能】
串行化異步動作。
對 async 進行了封裝,避免并發導致的亂序。
【參數】
array: 數組func:函數callback:回調函數
【用例】
$.each\_sync(items,function(i,callback){var item=items\[i\];
$.post(url,function() {
// ...callback();
});
});
$.fn.removeDeep()
$.fn.removeDeep()
$.fn.removeDeep()
【功能】
清理節點,和節點上的事件。
remove() 并不清除子節點事件!!用來替代 remove(),避免內存泄露
【用例】
$('div.card').removeDeep();
$.fn.emptyDeep()
$.fn.emptyDeep()
$.fn.emptyDeep()
【功能】
清理節點,和節點上的事件,與 removeDeep() 不同的是它保留當前節點。
【用例】
$('body').emptyDeep();
$.fn.checked()
$.fn.checked()
$.fn.checked()
【功能】
獲取選中的控件的值。
主要針對 checkbox radio select 控件。
【返回值】
可能是數組,也可能是字符串,取決于控件類型。
【用例】
var v=$('select').checked();
//返回字符串: 123
var arr=$('input\[type="checkbox"\]').checked();
//返回數組: \[1, 2, 3\]
$.fn.button()
$.fn.button()
$.fn.button(v)
【功能】
獲取選中的控件的值。
主要針對 checkbox radio select 控件。
【參數】
v: button 上的文字和狀態
【用例】
//正在加載,會調用loading-text屬性
$('button').button('loading');
//禁用狀態
$('button').button('disabled');
//啟用
$('button').button('enable');
//重設狀態
$('button').button('reset');
//使用非狀態值得文字內容
$('button').button('非狀態值的文字內容');
$.fn.location()
$.fn.location()
$.fn.location(href)
【功能】
頁面跳轉,支持連續操作。
【參數】
href: 跳轉的 URL
【用例】
jsubmit.button(message).delay(1000).button('reset').delay(1000).location('http:
//xxxx');
$.fn.alert()
$.fn.alert()
$.fn.alert(message)
【功能】
在控件的上方顯示提示信息。
【參數】
message: 信息內容
【用例】
$('input.subject').alert("請輸入標題");
$.fn.serializeObject()
$.fn.serializeObject()
$.fn.serializeObject()
【功能】
對 Form 表單的控件序列化,生成對象。
$.fn.serialize() 生成的是字符串。
【用例】
varpostdata=$('form').serializeObject();consolelog(postdata);
//結果:{"username": "Jack", "email": "<jack@gmail.com>"}
$.fn.reset()
$.fn.reset()
$.fn.reset()
【功能】
對 Form 表單狀態重設。
會對內所以后控件進行重設,并且清楚 alert() 等殘余信息。
【用例】
$('form').reset();
$.fn.base\_href()
$.fn.base\_href()
$.fn.base\_href(base)
【功能】
用 JS 實現 相對路徑的功能。
一般用來處理公共模板的路徑不正確問題。
【參數】
base:相對路徑值
【用例】
$('#threadlist').base\_href('../');
$.fn.base64\_encode\_file()
$.fn.base64\_encode\_file()
【功能】
將文件的內容 base64 編碼放入隱藏的同名控件。方便文件上傳
【參數】
標簽屬性傳參:
<inputtype="file"multiple="multiple"class="form-control"name="file1"value=""data-assoc="img1"placeholder="選擇文件"/>
data-assoc:表示圖片縮略圖的ID(如果非圖片則不顯示)
【原理】
在文件選擇后,生成一個隱藏的控件 hidden,名字與文件控件相同。內容為文件的 base64 編碼。這樣會隨著表單一起 POST 發送到服務端。
【用例】
var jform=$("#form");var jsubmit=$("#submit");
jform.base64\_encode\_file();//對文件進行base64編碼,處理文件上傳,很方便
jform.on('submit',function(){jform.reset();
varpostdata=jform.serialize();jsubmit.button('loading');
$.xpost(jform.attr('action'),postdata,function(code,message){if(code==0) {
$.alert(message);jsubmit.text(message).delay(3000).location();return;
}else{
alert(message);jsubmit.button('reset');
}
});
returnfalse;
});
服務端獲取:
<?php
// ...
$data=param\_base64('file1');file\_put\_contents('1.jpg',$data);
?>
- Xiuno BBS 入門
- Xiuno BBS 是什么?
- 如何獲取?
- 如何安裝?
- URL-Rewrite 網址美化
- URL-Rewrite 網址美化
- 轉發規則Nginx:
- Apache:
- Apache .htaccess
- Apache httpd.conf
- 性能優化
- 前端技術棧
- Bootstrap 4
- Bootstrap 4.0
- 效果:
- 中文資料:
- JQuery 3
- JQuery 3.1
- 效果:
- Tether.js
- Tether.js
- 效果:
- 官方網站:
- Fontawesome
- Fontawesome
- 部分圖標預覽
- xiuno.js
- xiuno.js 是什么?
- Xiuno.js 是什么?
- 效果:
- $.alert()
- $.alert()
- 程序結構
- 目錄結構
- Xiuno BBS 4.0 目錄結構
- 表結構
- Xiuno BBS 4.0 表結構
- MVC 分層架構
- MVC 分層架構
- 圖例:
- 插件開發
- Hello, Xiuno Plugin!
- Hello, Xiuno Plugin!
- 補充:
- hook 機制
- Hook 機制
- overwrite 機制
- Overwrite 機制
- 風格模板
- 風格模板
- 發布你的插件
- 風格模板
- 插件示例
- 插件示例
- 一個單頁的例子
- 一個單頁的例子
- 常見問題
- post 表中的 message message_fmt 字段的區別?
- 論壇帖子數據
- 如何調用百度編輯器?
- 如何調用百度編輯器?
- Xiuno BBS 4.0 中的幾種緩存 API
- 插件互相卸載機制
- 插件互相卸載機制
- 其他
- JSON API
- GET:
- POST:
- 注意: