您的位置:首页 > Web前端 > JavaScript

JavaScript收藏的经典函数

2007-03-02 14:37 363 查看
1。字符串替代方法。
function String_Replace(srcString,findString,replaceString){
return String_ReplaceB(srcString, findString, replaceString, 0);
}
function String_ReplaceB(expression, find, replacewith, start) {
var index = expression.indexOf(find, start);
if (index == -1)
return expression;

var findLen = find.length;
var newexp = "";
newexp = expression.substring(0, index)+(replacewith)+(expression.substring(index+findLen));

return String_ReplaceB(newexp, find, replacewith, index+1+findLen);
}

2。取字符串长度方法
function String_GetLength(str){
var i,rt=0;
for(i=0;i<str.length;i++)
{
rt++;
if(str.charCodeAt(i)>256)rt++;
}
return rt;
}

3。求浮点数方法
function getFloat(num)
{
var num = parseFloat(num);
if(isNaN(num))num = 0;
return num;
}

4。求整数方法(用到浮点数取法)
function getInt(num)
{
return parseInt(getFloat(num));
}

5。判断文本域对象是否惟空
function at_checkBlank(obj,caption) {
if(String_Replace(obj.value," ","")=="")
{
obj.select();
alert(caption+"不能为空?");
obj.focus();
return false;
}
return true;
}

6。两个Select对象(llist,rlist)互相操作
var llist = fmObj.AssignedUser;//左边已经选中项目
var rlist = fmObj.WaitedUser;//右边未被选中的项目
//双击右边select中的项目
function AssignUser() {
if(rlist.selectedIndex < 0 || rlist.selectedIndex > rlist.options.length)return;
var i;

llist.options.length++;
llist.options[llist.options.length-1].value = rlist.options[rlist.selectedIndex].value;
llist.options[llist.options.length-1].text = rlist.options[rlist.selectedIndex].text;

for(i = rlist.selectedIndex; i < rlist.options.length - 1; i ++) {
rlist.options[i].value = rlist.options[i+1].value;
rlist.options[i].text = rlist.options[i+1].text;
}
rlist.length --;
}
//把右边选中的加入左边
function AssignRight_AssignSelected(){
for(var i = rlist.length - 1; i >= 0; i --) {
if(rlist.options[i].selected) {
llist.options.length++;
llist.options[llist.options.length-1].value = rlist.options[i].value;
llist.options[llist.options.length-1].text = rlist.options[i].text;

for(var j = i; j < rlist.options.length - 1; j ++) {
rlist.options[j].value = rlist.options[j+1].value;
rlist.options[j].text = rlist.options[j+1].text;
}
rlist.length --;
}
}
}
//把右边所有加入左边
function AssignRight_AssignAll(){
for(var i = rlist.length - 1; i >= 0; i --) {
llist.options.length++;
llist.options[llist.options.length-1].value = rlist.options[i].value;
llist.options[llist.options.length-1].text = rlist.options[i].text;

for(var j = i; j < rlist.options.length - 1; j ++) {
rlist.options[j].value = rlist.options[j+1].value;
rlist.options[j].text = rlist.options[j+1].text;
}
rlist.length --;
}
}
//左边select项目双击
function DenyUser() {
if(llist.selectedIndex < 0 || llist.selectedIndex > llist.options.length)return;
var i;
rlist.options.length++;
rlist.options[rlist.options.length-1].value = llist.options[llist.selectedIndex].value;
rlist.options[rlist.options.length-1].text = llist.options[llist.selectedIndex].text;
for(i = llist.selectedIndex; i < llist.options.length - 1; i ++) {
llist.options[i].value = llist.options[i+1].value;
llist.options[i].text = llist.options[i+1].text;
}
llist.length --;
}
//把左边选中的项目加入右边
function AssignRight_DenySelected() {
for(var i = llist.length - 1; i >= 0; i --) {
if(llist.options[i].selected) {
rlist.options.length++;
rlist.options[rlist.options.length-1].value = llist.options[i].value;
rlist.options[rlist.options.length-1].text = llist.options[i].text;
for(j = llist.selectedIndex; j < llist.options.length - 1; j ++) {
llist.options[j].value = llist.options[j+1].value;
llist.options[j].text = llist.options[j+1].text;
}
llist.length --;
}
}
}
//左边所有项目加入右边
function AssignRight_DenyAll() {
for(var i = llist.length - 1; i >= 0; i --) {
rlist.options.length++;
rlist.options[rlist.options.length-1].value = llist.options[i].value;
rlist.options[rlist.options.length-1].text = llist.options[i].text;
for(j = i; j < llist.options.length - 1; j ++) {
llist.options[j].value = llist.options[j+1].value;
llist.options[j].text = llist.options[j+1].text;
}
llist.length --;
}
}

7。返回两个时间的天数:要求比较的日期的格式为:YYYY-MM-DD
*****************************/
function getDays(strDateStart,strDateEnd)
{
var strSeparator = "-"; //日期分隔符
var strDateArrayStart;
var strDateArrayEnd;
var intDay;
strDateArrayStart = strDateStart.split(strSeparator);
strDateArrayEnd = strDateEnd.split(strSeparator);
var strDateS = new Date(strDateArrayStart[0] + "/" + strDateArrayStart[1] + "/" + strDateArrayStart[2]);
var strDateE = new Date(strDateArrayEnd[0] + "/" + strDateArrayEnd[1] + "/" + strDateArrayEnd[2]);
intDay = (strDateE-strDateS)/(1000*3600*24);
if(isNaN(intDay)==false)
return intDay;
else
return -1;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: