javascript函数收藏


// 对Date的扩展,将 Date 转化为指定格式的String
// 月(M)、日(d)、小时(h)、分(m)、秒(s)、季度(q) 可以用 1-2 个占位符,
// 年(y)可以用 1-4 个占位符,毫秒(S)只能用 1 个占位符(是 1-3 位的数字)
// 例子:
// (new Date()).Format("yyyy-MM-dd hh:mm:ss.S") ==> 2006-07-02 08:09:04.423
// (new Date()).Format("yyyy-M-d h:m:s.S") ==> 2006-7-2 8:9:4.18
Date.prototype.Format = function(fmt)
{ //author: meizz
var o = {
"M+" : this.getMonth()+1, //月份
"d+" : this.getDate(), //日
"h+" : this.getHours(), //小时
"m+" : this.getMinutes(), //分
"s+" : this.getSeconds(), //秒
"q+" : Math.floor((this.getMonth()+3)/3), //季度
"S" : this.getMilliseconds() //毫秒
};
if(/(y+)/.test(fmt))
fmt=fmt.replace(RegExp.$1, (this.getFullYear()+"").substr(4 - RegExp.$1.length));
for(var k in o)
if(new RegExp("("+ k +")").test(fmt))
fmt = fmt.replace(RegExp.$1, (RegExp.$1.length==1) ? (o[k]) : (("00"+ o[k]).substr((""+ o[k]).length)));
return fmt;
}
var time1 = new Date().format("yyyy-MM-dd HH:mm:ss");

var time2 = new Date().format("yyyy-MM-dd");




//判断手机号码
function validatemobile(mobile)
{
if(mobile.length==0)
{
alert('请输入手机号码!');
document.form1.mobile.focus();
return false;
}
if(mobile.length!=11)
{
alert('请输入有效的手机号码!');
document.form1.mobile.focus();
return false;
}

var myreg = /^(((13[0-9]{1})|159|153)+\d{8})$/;
if(!myreg.test(mobile))
{
alert('请输入有效的手机号码!');
document.form1.mobile.focus();
return false;
}
}



//判断是否是数字
function isNum(num){
var regu = "^[0-9]*$";
var re = new RegExp(regu);
if (num.search(re) != -1){
return true;
}
else{
return false;
}
}



//根据 Radio 名字取 Radio的值
function getRadioValue(name){
for(var i=1;i<=2;i++){
var radioXElement = document.getElementsByName(name);
for(var j=0;j<radioXElement.length;j++){
if(radioXElement[j].checked==true){
var sex = radioXElement[j].value;
return sex;
}
}
}

}



//Ctrl+Enter触发事件
function isKeyTrigger(e,keyCode){
var argc = isKeyTrigger.arguments.length;
var bCtrl = false;
if(argc > 2){
bCtrl = argv[2];
}
var bAlt = false;
if(argc > 3){
bAlt = argv[3];
}

var nav4 = window.Event ? true : false;

if(typeof e == 'undefined') {
e = event;
}

if( bCtrl &&
!((typeof e.ctrlKey != 'undefined') ?
e.ctrlKey : e.modifiers & Event.CONTROL_MASK > 0)){
return false;
}
if( bAlt &&
!((typeof e.altKey != 'undefined') ?
e.altKey : e.modifiers & Event.ALT_MASK > 0)){
return false;
}
var whichCode = 0;
if (nav4) whichCode = e.which;
else if (e.type == "keypress" || e.type == "keydown")
whichCode = e.keyCode;
else whichCode = e.button;

return (whichCode == keyCode);
}

function ctrlEnter(e){
var ie =navigator.appName=="Microsoft Internet Explorer"?true:false;
if(ie){
if(event.ctrlKey && window.event.keyCode==13){sendSub();}
}else{
if(isKeyTrigger(e,13,true)){sendSub();}
}
}
//在页面中应用,eg. <textarea id="msg" style="width:100%;height:250px" onkeyup="javascript:return ctrlEnter(event);"></textarea>





//JavaScript执行字符串,即把字符串当代码执行,如下的结果为5
eval("2 + 3");


string.replace(/\s*<\?/g, "<?");//全文替代字符串中的<?准确地替代为 <?


[code]
/**
如果想加载完页面后就立即加载javascript函数就可以直接用下面的函数
addLoadEvent(函数名)
*/
function addLoadEvent(func){
var oldοnlοad=window.onload;
if(typeof window.onload!='function'){
window.οnlοad=func;
}else{
window.οnlοad=function(){
oldonload();
func();
}
}
}[/code]

//删除一个元素节点或者文本节点,参考http://book.csdn.net/bookfiles/344/10034413523.shtml
var anchor = document.getElementById("sirius");

var parent = anchor.parentNode;

parent.removeChild(anchor);


[code]/**一个删除元素的函数和测试例子*/
<html>
<head>
<title>Remove Element</title>
<script type="text/javascript">
//删除元素节点
function delElement(o){
var ogff=o.parentNode.parentNode.parentNode;
var ogf=o.parentNode.parentNode;
//javascript都是通过父节/父元素点来删除元素或节点的
ogff.removeChild(ogf);
}
</script>
</head>
<body>
<center>
<table>
<tr id="t_tr">
<!-- this表示input元素-->
<td id="t_td">A<input type="button" value="delete" οnclick="delElement(this)" /></td>
</tr>
<tr id="t_tr">
<td id="t_td">B<input type="button" value="delete" οnclick="delElement(this)" /></td>
</tr>
</table>
</center>
</body>
</html>

[/code][code]
/**
insertBefore(targetElement,Element):把Element放到targetElement起前面
为了和javascrpt的insertBefore(targetElement,Element)对应而写的
insertAfter(newElement,targetElement):把newElement放到targetElement后面
*/
function insertAfter(newElement,targetElement){
var parent=targetElement.parentNode;
if(parent.lastChild==targetElement){
parent.appendChild(newElement);
}else{
parent.insertBefore(newElement,targetElement.nextSibling);
}
} [/code]


[code]/**
* 字串相关 String
*/
/** 修剪字串前后的空格 */
function trim(s) {
var count = s.length;
var st = 0; // start
var end = count-1; // end

if (s == "") return s;
while (st < count) {
if (s.charAt(st) == " ")
st ++;
else
break;
}
while (end > st) {
if (s.charAt(end) == " ")
end --;
else
break;
}
return s.substring(st,end + 1);
}[/code]
[code]
/**
* 对Form的多选框进行处理
* mode A-全选,B-反选
*/
function selectAll(box,mode){
var check = box.checked;
var agree=document.getElementById("agree");
var disagree=document.getElementById("disagree");
var boxes = document.getElementsByName("checkbox");
switch (mode){
case 'A': // 全选
disagree.checked=false;

for(var i=0;i<boxes.length;i++){
// alert(boxes[i].checked )
boxes[i].checked = check;
}
break;
case 'B': // 反选
agree.checked=false;
for(var i=0;i<boxes.length;i++){
if(boxes[i].checked==true){
boxes[i].checked=false;
}else{
boxes[i].checked=true
}
}
break;
}
} [/code]
[code]
全选<input id="agree" type="checkbox" οnclick="selectAll(this,'A')"/>
反选<input id="disagree" type="checkbox" οnclick="selectAll(this,'B')"/>[/code]

[code]//验证时间格式 YYYY-MM-DD
function isDate(date){
var regu = "^[0-9]{4}-([0-1]?)[0-9]{1}-([0-3]?)[0-9]{1}$";
// var regu = "^([0-9]*[.0-9])$"; // 小数测试
var re = new RegExp(regu);
if (date.search(re) != -1)
return true;
else
return false;
}[/code]

//这是另外的客户端校验,可以不要
function check_Num()//检查输入是否是数字,不是数字就部响应输入
{
if((event.keyCode<48) || (event.keyCode>57))
return false;
}



//用于判断层的位置,用于把某个元素放在另一个元素的下面
function findPos(obj) {
var curleft = curtop = 0;
if (obj.offsetParent) {
curleft = obj.offsetLeft
curtop = obj.offsetTop
while (obj = obj.offsetParent) {
curleft += obj.offsetLeft
curtop += obj.offsetTop
}
}
return [curleft,curtop];
}
//例如:
//层的定位,这里是把DIV放到t_object元素的下面去
//把document.getElementById("cele_date")的元素放在positionElem元素的下面
var positionName=t_object.getAttribute("id");//t_object在这里是某个元素
var positionElem=document.getElementById(positionName);
var posDiv=findPos(positionElem);
posDiv.push(positionElem.offsetHeight);
posDiv.push(positionElem.offsetWidth)
document.getElementById("cele_date").style.top=(posDiv[1]+posDiv[2])+'px';
document.getElementById("cele_date").style.left=posDiv[0]+'px';


/**
* 按外部XSL格式转换XML文档到页面的div元属中
* divID:div的id
* xmlFileStr:xml文件的内容
* xslFileStr:xsl文件的路径
*/
// 按XSL格式转换XML文档到divID元属中
function transformXml (divID, xmlFileStr, xslFileStr) {
var divObj = document.getElementById(divID);
//alert(divObj)
//alert(xmlFileStr);

if (typeof window.ActiveXObject != 'undefined') { // 支持IE浏览器
xmlDoc = new ActiveXObject("Msxml2.DOMDocument");
xslDoc = new ActiveXObject("Msxml2.DOMDocument");
xmlDoc.async = false;
xmlDoc.loadXML(xmlFileStr);//xml文件/xml的内容
xslDoc.async = false;
xslDoc.load(xslFileStr);//xsl文件
//alert("*********************"+xslDoc.xml)
//alert(xmlDoc.transformNode(xslDoc));
divObj.innerHTML = xmlDoc.transformNode(xslDoc);

//alert(divObj.innerHTML);//为空字符串

}
else if((typeof document.implementation != 'undefined')
&&(typeof document.implementation.createDocument!='undefined')) { // 支持Mozilla浏览器

xslDoc = document.implementation.createDocument("", "", null);
// 定义XSLTProcessor对象
try{

var dp = new DOMParser();
var xmlDOM = dp.parseFromString(xmlFileStr, "text/xml");

xslDoc.async = false;
xslDoc.load(xslFileStr);
var xsltProcessor = new XSLTProcessor();
xsltProcessor.importStylesheet(xslDoc);
// transformToDocument方式
var result = xsltProcessor.transformToDocument(xmlDOM);
var xmls = new XMLSerializer();

//alert(xmls.serializeToString(result));
divObj.innerHTML = xmls.serializeToString(result);
}catch(e){
alert(e.name + ": " + e.message);
return "";;
}

}
}



// 按XSL格式转换XML文档到div元属中
/*
divID元素的id
xmlFileStr:xml文件的路径
xslFileStr:xsl文件的路径
*/
function transformXml (divID,xmlFileStr, xslFileStr) {
var divObj = document.getElementById(divID);

if (typeof window.ActiveXObject != 'undefined') { // 支持IE浏览器
xmlDoc = new ActiveXObject("Msxml2.DOMDocument");
xslDoc = new ActiveXObject("Msxml2.DOMDocument");
xmlDoc.async = false;
xmlDoc.load(xmlFileStr);//xml文件的路径
xslDoc.async = false;
xslDoc.load(xslFileStr);//xsl文件的路径
divObj.innerHTML = xmlDoc.transformNode(xslDoc);
}
else if((typeof document.implementation != 'undefined')
&&(typeof document.implementation.createDocument!='undefined')) { // 支持Mozilla浏览器
xmlDoc = document.implementation.createDocument("", "", null);
xslDoc = document.implementation.createDocument("", "", null);
// 定义XSLTProcessor对象

xmlDoc.async = false;
xmlDoc.load(xmlFileStr);
xslDoc.async = false;
xslDoc.load(xslFileStr);
xsltProcessor = new XSLTProcessor();
xsltProcessor.importStylesheet(xslDoc);
var resultHtml = xsltProcessor.transformToDocument(xmlDoc);
oXmlSerializer = new XMLSerializer();
divObj.innerHTML = oXmlSerializer.serializeToString(resultHtml);

}
}


//拿取下拉列表所选择的值或其选择项内容
function getChoseValue(flag){//flag是下拉列表的id
var choseArray = document.getElementById(flag);
for(var i=0;i<choseArray.length;i++){
if(choseArray[i].selected == true){
//alert(choseArray[i].text)//选择项的内容,choseArray[i].text等价浴于choseArray.options[i].text
return choseArray[i].value;//值
}
}

document.getElementById("sel").options.length=0;//清空select里的所有option选项,参考http://www.toto369.net/jsjq/s/select/select1.htm
}

  //离开当前链接就触发事件,关闭窗口也会触发该事件
<body onbeforeunload="LeaveWin()">
function LeaveWin(){
// do more thing
alert("离开当前链接就触发事件

}



[b]拿取radio的值[/b]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title></title>
<script type="text/javascript">
function test(){
var testContent = "";
for(var i=1;i<=2;i++){
var radioXElement = document.getElementsByName("x"+i);
for(var j=0;j<radioXElement.length;j++){
if(radioXElement[j].checked==true){
testContent = testContent+radioXElement[j].value;
}
}
}

alert(testContent);

}
</script>
</head>

<body>
<table>
<tr class="tr">
<td></td>
<td class='td' > <input type="radio" name="x1" value="XX1" style="width:13px"/>XX1</td>
<td class='td' > <input type="radio" name="x1" value="YY1" style="width:13px"/>YY1</td>
<td></td>
</tr>
<tr class="tr">
<td></td>
<td class='td' > <input type="radio" name="x2" value="XX2" style="width:13px"/>XX2</td>
<td class='td' > <input type="radio" name="x2" value="YY2" style="width:13px"/>YY2</td>
<td></td>
</tr>
<tr class="tr">
<td></td>
<td colspan="2"><input type="button" value="test" onclick="test()" size="10"/></td>
<td></td>
</tr>
</table>
</body>
</html>

/**
* 用javascript的正则表达式判断输入的格式是否正确
* @param beginDate:输入的日期
*/
function checkDateFormat(beginDate){
beginDate = document.getElementById("beginDate").value;
if (beginDate.length != 10) {
alert("请填写正确的日期格式(YYYY-MM-DD)!");
return false;
}
var reg = /^(?:19|20\d{2})-(?:0[1-9]|1[0-2])-(?:0[1-9]|[12][0-9]|3[0|1])$/;
if (!reg.test(beginDate)) {
alert("请填写正确的日期格式(YYYY-MM-DD)或日期是否正确!");
return false;
}else{
return true;
}

}


//Javascript中Array的默认方法里没有提供indexOf方法,那也自己动手加一个进去 
//以prototype方式来Hack Javascript 真的很爽

if (!Array.prototype.indexOf) {
Array.prototype.indexOf = function(item, i) {
i || (i = 0);
var length = this.length;
if (i < 0) i = length + i;
for (; i < length; i++)
if (this[i] === item) return i;
return -1;
};
}


//javascript没有replaceAll方法,用正则表达写的replaceAll方法
String.prototype.replaceAll = function(s1,s2){//去掉内容空格
return this.replace(new RegExp(s1,"gm"),s2);
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值