js常用方法二

JS自带函数
concat
将两个或多个字符的文本组合起来,返回一个新的字符串。
var a = "hello";
var b = ",world";
var c = a.concat(b);
alert(c);
//c = "hello,world"
indexOf
返回字符串中一个子串第一处出现的索引(从左到右搜索)。如果没有匹配项,返回 -1 。
var index1 = a.indexOf("l");
//index1 = 2
var index2 = a.indexOf("l",3);
//index2 = 3
charAt
返回指定位置的字符。
var get_char = a.charAt(0);
//get_char = "h"
lastIndexOf
返回字符串中一个子串最后一处出现的索引(从右到左搜索),如果没有匹配项,返回 -1 。
var index1 = lastIndexOf('l');
//index1 = 3
var index2 = lastIndexOf('l',2)
//index2 = 2
match
检查一个字符串匹配一个正则表达式内容,如果么有匹配返回 null。
var re = new RegExp(/^\w+$/);
var is_alpha1 = a.match(re);
//is_alpha1 = "hello"
var is_alpha2 = b.match(re);
//is_alpha2 = null
s string
返回字符串的一个子串,传入参数是起始位置和结束位置。
var s _string1 = a.s string(1);
//s _string1 = "ello"
var s _string2 = a.s string(1,4);
//s _string2 = "ell"
s str
返回字符串的一个子串,传入参数是起始位置和长度
var s _string1 = a.s str(1);
//s _string1 = "ello"
var s _string2 = a.s str(1,4);
//s _string2 = "ello"
replace
用来查找匹配一个正则表达式的字符串,然后使用新字符串代替匹配的字符串。
var result1 = a.replace(re,"Hello");
//result1 = "Hello"
var result2 = b.replace(re,"Hello");
//result2 = ",world"
search
执行一个正则表达式匹配查找。如果查找成功,返回字符串中匹配的索引值。否则返回 -1 。
var index1 = a.search(re);
//index1 = 0
var index2 = b.search(re);
//index2 = -1
slice
提取字符串的一部分,并返回一个新字符串(与 s string 相同)。
var s _string1 = a.slice(1);
//s _string1 = "ello"
var s _string2 = a.slice(1,4);
//s _string2 = "ell"
split
通过将字符串划分成子串,将一个字符串做成一个字符串数组。
var arr1 = a.split("");
//arr1 = [h,e,l,l,o]
length
返回字符串的长度,所谓字符串的长度是指其包含的字符的个数。
var len = a.length();
//len = 5
toLowerCase
将整个字符串转成小写字母。
var lower_string = a.toLowerCase();
//lower_string = "hello"
toUpperCase
将整个字符串转成大写字母。
var upper_string = a.toUpperCase();
//upper_string = "HELLO"
/*
******************************************
字符串函数扩充
******************************************
*/
/*
===========================================
//去除左边的空格
===========================================
*/
String.prototype.LTrim = function()
{
return this.replace(/(^\s*)/g, "");
}
/*
===========================================
//去除右边的空格
===========================================
*/
String.prototype.Rtrim = function()
{
return this.replace(/(\s*$)/g, "");
}
/*
===========================================
//去除前后空格
===========================================
*/
String.prototype.Trim = function()
{
return this.replace(/(^\s*)|(\s*$)/g, "");
}
/*
===========================================
//得到左边的字符串
===========================================
*/
String.prototype.Left = function(len)
{
if(isNaN(len)||len==null)
{
len = this.length;
}
else
{
if(parseInt(len)<0||parseInt(len)>this.length)
{
len = this.length;
}
}
return this.s str(0,len);
}
/*
===========================================
//得到右边的字符串
===========================================
*/
String.prototype.Right = function(len)
{
if(isNaN(len)||len==null)
{
len = this.length;
}
else
{
if(parseInt(len)<0||parseInt(len)>this.length)
{
len = this.length;
}
}
return this.s string(this.length-len,this.length);
}
/*
===========================================
//得到中间的字符串,注意从0开始
===========================================
*/
String.prototype.Mid = function(start,len)
{
return this.s str(start,len);
}
/*
===========================================
//在字符串里查找另一字符串:位置从0开始
===========================================
*/
String.prototype.InStr = function(str)
{
if(str==null)
{
str = "";
}
return this.indexOf(str);
}
/*
===========================================
//在字符串里反向查找另一字符串:位置0开始
===========================================
*/
String.prototype.InStrRev = function(str)
{
if(str==null)
{
str = "";
}
return this.lastIndexOf(str);
}
/*
===========================================
//计算字符串打印长度
===========================================
*/
String.prototype.LengthW = function()
{
return this.replace(/[^\x00-\xff]/g,"**").length;
}
/*
===========================================
//是否是正确的IP地址
===========================================
*/
String.prototype.isIP = function()
{
var reSpaceCheck = /^(\d+)\.(\d+)\.(\d+)\.(\d+)$/;
if (reSpaceCheck.test(this))
{
this.match(reSpaceCheck);
if (RegExp.$1 <= 255 && RegExp.$1 >= 0
&& RegExp.$2 <= 255 && RegExp.$2 >= 0
&& RegExp.$3 <= 255 && RegExp.$3 >= 0
&& RegExp.$4 <= 255 && RegExp.$4 >= 0)
{
return tr;
}
else
{
return false;
}
}
else
{
return false;
}
}
/*
===========================================
//是否是正确的长日期
===========================================
*/
String.prototype.isLongDate = function()
{
var r = this.replace(/(^\s*)|(\s*$)/g, "").match(/^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2}) (\d{1,2}):(\d{1,2}):(\d{1,2})$/);
if(r==null)
{
return false;
}
var d = new Date(r[1], r[3]-1,r[4],r[5],r[6],r[7]);
return (d.getFullYear()==r[1]&&(d.getMonth()+1)==r[3]&&d.getDate()==r[4]&&d.getHours()==r[5]&&d.getMinutes()==r[6]&&d.getSeconds()==r[7]);
}
/*
===========================================
//是否是正确的短日期
===========================================
*/
String.prototype.isShortDate = function()
{
var r = this.replace(/(^\s*)|(\s*$)/g, "").match(/^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})$/);
if(r==null)
{
return false;
}
var d = new Date(r[1], r[3]-1, r[4]);
return (d.getFullYear()==r[1]&&(d.getMonth()+1)==r[3]&&d.getDate()==r[4]);
}
/*
===========================================
//是否是正确的日期
===========================================
*/
String.prototype.isDate = function()
{
return this.isLongDate()||this.isShortDate();
}
/*
===========================================
//是否是手机
===========================================
*/
String.prototype.isMobile = function()
{
return /^0{0,1}13[0-9]{9}$/.test(this);
}
/*
===========================================
//是否是邮件
===========================================
*/
String.prototype.isEmail = function()
{
return /^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/.test(this);
}
/*
===========================================
//是否是邮编(中国)
===========================================
*/
String.prototype.isZipCode = function()
{
return /^[\\d]{6}$/.test(this);
}
/*
===========================================
//是否是有汉字
===========================================
*/
String.prototype.existChinese = function()
{
//[\一-\龥]為漢字﹐[\︰-\?]為全角符號
return /^[\x00-\xff]*$/.test(this);
}
/*
===========================================
//是否是合法的文件名/目录名
===========================================
*/
String.prototype.isFileName = function()
{
return !/[\\\/\*\?\|:"<>]/g.test(this);
}
/*
===========================================
//是否是有效链接
===========================================
*/
String.prototype.isUrl = function()
{
return /^http[s]?:\/\/([\w-]+\.)+[\w-]+([\w-./?%&=]*)?$/i.test(this);
}
/*
===========================================
//是否是有效的身份证(中国)
===========================================
*/
String.prototype.isIDCard = function()
{
var iSum=0;
var info="";
var sId = this;
var aCity={11:"北京",12:"天津",13:"河北",14:"山西",15:"内蒙古",21:"辽宁",22:"吉林",23:"黑龙 江",31:"上海",32:"江苏",33:"浙江",34:"安徽",35:"福建",36:"江西",37:"山东",41:"河南",42:"湖 北",43:"湖南",44:"广东",45:"广西",46:"海南",50:"重庆",51:"四川",52:"贵州",53:"云南",54:"西藏",61:"陕西",62:"甘肃",63:"青海",64:"宁夏",65:"新疆",71:"台湾",81:"香港",82:"澳门",91:"国外"};
if(!/^\d{17}(\d|x)$/i.test(sId))
{
return false;
}
sId=sId.replace(/x$/i,"a");
//非法地区
if(aCity[parseInt(sId.s str(0,2))]==null)
{
return false;
}
var sBirthday=sId.s str(6,4)+"-"+Number(sId.s str(10,2))+"-"+Number(sId.s str(12,2));
var d=new Date(sBirthday.replace(/-/g,"/"))
//非法生日
if(sBirthday!=(d.getFullYear()+"-"+ (d.getMonth()+1) + "-" + d.getDate()))
{
return false;
}
for(var i = 17;i>=0;i--)
{
iSum += (Math.pow(2,i) % 11) * parseInt(sId.charAt(17 - i),11);
}
if(iSum%11!=1)
{
return false;
}
return tr;
}
/*
===========================================
//是否是有效的电话号码(中国)
===========================================
*/
String.prototype.isPhoneCall = function()
{
return /(^[0-9]{3,4}\-[0-9]{3,8}$)|(^[0-9]{3,8}$)|(^\([0-9]{3,4}\)[0-9]{3,8}$)|(^0{0,1}13[0-9]{9}$)/.test(this);
}
/*
===========================================
//是否是数字
===========================================
*/
String.prototype.isNumeric = function(flag)
{
//验证是否是数字
if(isNaN(this))
{
return false;
}
switch(flag)
{
case null: //数字
case "":
return tr;
case "+": //正数
return /(^\+?|^\d?)\d*\.?\d+$/.test(this);
case "-": //负数
return /^-\d*\.?\d+$/.test(this);
case "i": //整数
return /(^-?|^\+?|\d)\d+$/.test(this);
case "+i": //正整数
return /(^\d+$)|(^\+?\d+$)/.test(this);
case "-i": //负整数
return /^[-]\d+$/.test(this);
case "f": //浮点数
return /(^-?|^\+?|^\d?)\d*\.\d+$/.test(this);
case "+f": //正浮点数
return /(^\+?|^\d?)\d*\.\d+$/.test(this);
case "-f": //负浮点数
return /^[-]\d*\.\d$/.test(this);
default: //缺省
return tr;
}
}
/*
===========================================
//是否是颜色(#FFFFFF形式)
===========================================
*/
String.prototype.IsColor = function()
{
var temp = this;
if (temp=="") return tr;
if (temp.length!=7) return false;
return (temp.search(/\#[a-fA-F0-9]{6}/) != -1);
}
/*
===========================================
//转换成全角
===========================================
*/
String.prototype.toCase = function()
{
var tmp = "";
for(var i=0;i<this.length;i++)
{
if(this.charCodeAt(i)>0&&this.charCodeAt(i)<255)
{
tmp += String.fromCharCode(this.charCodeAt(i)+65248);
}
else
{
tmp += String.fromCharCode(this.charCodeAt(i));
}
}
return tmp
}
/*
===========================================
//对字符串进行Html编码
===========================================
*/
String.prototype.toHtmlEncode = function()
{
var str = this;
str=str.replace(/&/g,"&");
str=str.replace(/</g,"<");
str=str.replace(/>/g,">");
str=str.replace(/\'/g,"&apos;");
str=str.replace(/\"/g,""");
str=str.replace(/\n/g,"<br>");
str=str.replace(/\ /g," ");
str=str.replace(/\t/g,"    ");
return str;
}
/*
===========================================
//转换成日期
===========================================
*/
String.prototype.toDate = function()
{
try
{
return new Date(this.replace(/-/g, "\/"));
}
catch(e)
{
return null;
}
}




=============================================================================

·字符串(String)
1.声明
var myString = new String("Every good boy does fine.");
var myString = "Every good boy does fine.";

2.字符串连接
var myString = "Every " + "good boy " + "does fine.";
var myString = "Every "; myString += "good boy does fine.";

3.截取字符串
//截取第 6 位开始的字符
var myString = "Every good boy does fine.";
var section = myString.s string(6); //结果: "good boy does fine."

//截取第 0 位开始至第 10 位为止的字符
var myString = "Every good boy does fine.";
var section = myString.s string(0,10); //结果: "Every good"

//截取从第 11 位到倒数第 6 位为止的字符
var myString = "Every good boy does fine.";
var section = myString.slice(11,-6); //结果: "boy does"

//从第 6 位开始截取长度为 4 的字符
var myString = "Every good boy does fine.";
var section = myString.s str(6,4); //结果: "good"

4.转换大小写
var myString = "Hello";
var lcString = myString.toLowerCase(); //结果: "hello"
var String = myString.toUpperCase(); //结果: "HELLO"

5.字符串比较
var aString = "Hello!";
var bString = new String("Hello!");
if( aString == "Hello!" ){ } //结果: tr
if( aString == bString ){ } //结果: tr
if( aString === bString ){ } //结果: false (两个对象不同,尽管它们的值相同)

6.检索字符串
var myString = "hello everybody.";
// 如果检索不到会返回-1,检索到的话返回在该串中的起始位置
if( myString.indexOf("every") > -1 ){ } //结果: tr

7.查找替换字符串
var myString = "I is your father.";
var result = myString.replace("is","am"); //结果: "I am your father."

8.特殊字符:
\b : 后退符 \t : 水平制表符
\n : 换行符 \v : 垂直制表符
\f : 分页符 \r : 回车符
\" : 双引号 \' : 单引号
\\ : 反斜杆

9.将字符转换成Unicode编码
var myString = "hello";
var code = myString.charCodeAt(3); //返回"l"的Unicode编码(整型)
var char = String.fromCharCode(66); //返回Unicode为66的字符

10.将字符串转换成URL编码
var myString = "hello all";
var code = encodeURI(myString); //结果: "hello%20all"
var str = decodeURI(code); //结果: "hello all"
//相应的还有: encodeURIComponent() decodeURIComponent()

11.将字符串转换成base64编码
// base64Encode() base64Decode() 用法同上

//-----------------------------------------------------------------------

·数字型(Number)
1.声明
var i = 1;
var i = new Number(1);

2.字符串与数字间的转换
var i = 1;
var str = i.toString(); //结果: "1"
var str = new String(i); //结果: "1"
i = parseInt(str); //结果: 1
i = parseFloat(str); //结果: 1.0

//注意: parseInt,parseFloat会把一个类似于"32G"的字符串,强制转换成32

3.判断是否为有效的数字
var i = 123; var str = "string";
if( typeof i == "number" ){ } //tr

//某些方法(如:parseInt,parseFloat)会返回一个特殊的值NaN(Not a Number)
//请注意第2点中的[注意],此方法不完全适合判断一个字符串是否是数字型!!
i = parseInt(str);
if( isNaN(i) ){ }

4.数字型比较
//此知识与[字符串比较]相同

5.小数转整数
var f = 1.5;
var i = Math.round(f); //结果:2 (四舍五入)
var i = Math.ceil(f); //结果:2 (返回大于f的最小整数)
var i = Math.floor(f); //结果:1 (返回小于f的最大整数)

6.格式化显示数字
var i = 3.14159;

//格式化为两位小数的浮点数
var str = i.toFixed(2); //结果: "3.14"

//格式化为五位数字的浮点数(从左到右五位数字,不够补零)
var str = i.toPrecision(5); //结果: "3.1415"

7.X进制数字的转换
//不是很懂 -.-
var i = parseInt("0x1f",16);
var i = parseInt(i,10);
var i = parseInt("11010011",2);

8.随机数
//返回0-1之间的任意小数
var rnd = Math.random();
//返回0-n之间的任意整数(不包括n)
var rnd = Math.floor(Math.random() * n)

//-----------------------------------------------------------------------

·Math对象
1. Math.abs(num) : 返回num的绝对值
2. Math.acos(num) : 返回num的反余弦值
3. Math.asin(num) : 返回num的反正弦值
4. Math.atan(num) : 返回num的反正切值
5. Math.atan2(y,x) : 返回y除以x的商的反正切值
6. Math.ceil(num) : 返回大于num的最小整数
7. Math.cos(num) : 返回num的余弦值
8. Math.exp(x) : 返回以自然数为底,x次幂的数
9. Math.floor(num) : 返回小于num的最大整数
10.Math.log(num) : 返回num的自然对数
11.Math.max(num1,num2) : 返回num1和num2中较大的一个
12.Math.min(num1,num2) : 返回num1和num2中较小的一个
13.Math.pow(x,y) : 返回x的y次方的值
14.Math.random() : 返回0到1之间的一个随机数
15.Math.round(num) : 返回num四舍五入后的值
16.Math.sin(num) : 返回num的正弦值
17.Math.sqrt(num) : 返回num的平方根
18.Math.tan(num) : 返回num的正切值
19.Math.E : 自然数(2.718281828459045)
20.Math.LN2 : 2的自然对数(0.6931471805599453)
21.Math.LN10 : 10的自然对数(2.302585092994046)
22.Math.LOG2E : log 2 为底的自然数(1.4426950408889634)
23.Math.LOG10E : log 10 为底的自然数(0.4342944819032518)
24.Math.PI : π(3.141592653589793)
25.Math.SQRT1_2 : 1/2的平方根(0.7071067811865476)
26.Math.SQRT2 : 2的平方根(1.4142135623730951)

//-----------------------------------------------------------------------

·日期型(Date)
1.声明
var myDate = new Date(); //系统当前时间

var myDate = new Date(yyyy, mm, dd, hh, mm, ss);
var myDate = new Date(yyyy, mm, dd);
var myDate = new Date("monthName dd, yyyy hh:mm:ss");
var myDate = new Date("monthName dd, yyyy");
var myDate = new Date(epochMilliseconds);

2.获取时间的某部份
var myDate = new Date();
myDate.getYear(); //获取当前年份(2位)
myDate.getFullYear(); //获取完整的年份(4位,1970-????)
myDate.getMonth(); //获取当前月份(0-11,0代表1月)
myDate.getDate(); //获取当前日(1-31)
myDate.getDay(); //获取当前星期X(0-6,0代表星期天)
myDate.getTime(); //获取当前时间(从1970.1.1开始的毫秒数)
myDate.getHours(); //获取当前小时数(0-23)
myDate.getMinutes(); //获取当前分钟数(0-59)
myDate.getSeconds(); //获取当前秒数(0-59)
myDate.getMilliseconds(); //获取当前毫秒数(0-999)
myDate.toLocaleDateString(); //获取当前日期
myDate.toLocaleTimeString(); //获取当前时间
myDate.toLocaleString( ); //获取日期与时间

3.计算之前或未来的时间
var myDate = new Date();
myDate.setDate(myDate.getDate() + 10); //当前时间加10天
//类似的方法都基本相同,以set开头,具体参考第2点

4.计算两个日期的偏移量
var i = daysBetween(beginDate,endDate); //返回天数
var i = beginDate.getTimezoneOffset(endDate); //返回分钟数

5.检查有效日期
//checkDate() 只允许"mm-dd-yyyy"或"mm/dd/yyyy"两种格式的日期
if( checkDate("2006-01-01") ){ }

//正则表达式(自己写的检查 yyyy-mm-dd, yy-mm-dd, yyyy/mm/dd, yy/mm/dd 四种)
var r = /^(\d{2}|\d{4})[\/-]\d{1,2}[\/-]\d{1,2}$/;
if( r.test( myString ) ){ }

//-----------------------------------------------------------------------

·数组(Array)
1.声明
var arr = new Array(); //声明一个空数组
var arr = new Array(10); //声明一个10个长度的数组
var arr = new Array("Alice", "Fred", "Jean"); //用值初始化数组
var arr = ["Alice", "Fred", "Jean"]; //用值初始化数组
var arr = [["A","B","C"][1,2,3]]; //声明一个二(多)维数组

2.数组的访问
arr[0] = "123"; //赋值
var str = arr[0]; //获取
arr[0][0] = "123"; //多维数组赋值

3.数组与字符串间的转换
var arr = ["A","B","C","D"]; //声明

//数组按分隔符转换成字符串
var str = arr.join("|"); //结果: "A|B|C|D"

//字符串切割成数组
arr = str.split("|");

4.遍历数组
for( var i=0; i<arr.length; i++ ){ alert(arr[i]); }

5.排序
var arr = [12,15,8,9];
arr.sort(); //结果: 8 9 12 15

6.组合与分解数组
var arr1 = ["A","B","C","D"];
var arr2 = ["1","2","3","4"];

//奖两个数组组合成一个新的数组
var arr = arr1.concat(arr2); //结果: ["A","B","C","D","1","2","3","4"]

//将一个数组切成两个数组(参数1:起始索引,参数2:切割长度)
var arr3 = arr.splice(1,3); //结果: arr3:["B","C","D"] arr["A","1","2","3","4"]

//将一个数组切成两个数组,并在原数组补新值
var arr4 = arr.splice(1,3,"AA"); //结果: arr4:["B","C","D"] arr["A","AA","1","2","3","4"]

//-----------------------------------------------------------------------

·自定义对象
1.声明:
function myUser(uid,pwd){
this.uid = uid;
this.pwd = pwd || "000000"; //默认值
this.show = showInfo; //方法
}

//下面的函数不是自定义对象,是自定义对象的方法.继续看下去就明白了
function showInfo(){
alert("用户名:" + this.uid + ",密码:" + this.pwd)
}

2.实例化:
var user = new myUser("user","123456");
var user = {uid:"user",pwd:"123456"};

3.获取与设置
alert("用户名是:" + user.uid); //get
user.uid = "newuser"; //set
user.show(); //调用show()方法

//-----------------------------------------------------------------------

·变量 函数 流程控制
1.变量
var i = 1;
var i = 1, str = "hello";

2.函数
function funName(){
//do something.
}
function funName(param1[,paramX]){
//do something.
}

3.嵌套函数
//某种情况,你需要创建一个函数本身所独有的函数.
function myFunction(){
//do something.
privateFunction();
function privateFunction(){
//do something.
}
}

4.匿名函数
var tmp = function(){ alert("only test."); }
tmp();

5.延迟函数调用
var tId = setTimeout("myFun()",1000); //延迟1000毫秒后再调用myFun()函数
f ntion myFun(){
//do something
clearTimeout(tId); //销毁对象
}

6.流程控制
if( condition ){ }
if( condition ){ } else{ }
if( condition ){ } else if( condition ){ } else{ }

switch( expression ){
case valA : statement; break;
case valB : statement; break;
default : statement; break;
}

7.异常捕获
try{ expression } catch(e){ } finally{ }

//不处理任何异常
window.onerror = doNothing;
function doNothing(){ return tr; }

//异常类可用的属性
description : 异常描述(IE,NN)
fileName : 异常页面URI(NN)
lineNumber : 异常行数(NN)
message : 异常描述(IE,NN)
name : 错误类型(IE,NN)
number : 错误代码(IE)

//错误信息(兼容所有浏览器)
try{ }
catch(e){
var msg = (e.message) ? e.message : e.description;
alert(msg);
}

8.加快脚本的执行速度
-避免使用 eval() 函数
-避免使用 with 关键字
-将重复的表达式赋值精简到最小
-在较大的对象中使用索引来查找数组
-减少 document.write() 的使用

//-----------------------------------------------------------------------

·浏览器特征( navigator )
1.浏览器名称
//IE : "Microsoft Internet Explorer"
//NS : "Netscape"
var browserName = navigator.appName;

2.浏览器版本
bar browserVersion = navigator.appVersion;

3.客户端操作系统
var isWin = ( navigator.userAgent.indexOf("Win") != -1 );
var isMac = ( navigator.userAgent.indexOf("Mac") != -1 );
var isUnix = ( navigator.userAgent.indexOf("X11") != -1 );

4.判断是否支持某对象,方法,属性
//当一个对象,方法,属性未定义时会返回undefined或null等,这些特殊值都是false
if( document.images ){ }
if( document.getElementById ){ }

5.检查浏览器当前语言
if( navigator.userLang ge ){ var l = navigator.userLang ge.toUpperCase(); }

6.检查浏览器是否支持Cookies
if( navigator.cookieEnabled ){ }

//-----------------------------------------------------------------------

·控制浏览器窗口( window )
1.设置浏览器的大小
window.resizeTo(800, 600); //将浏览器调整到800X600大小
window.resizeBy(50, -10); //在原有大小上改变增大或减小窗口大小

2.调整浏览器的位置
window.moveTo(10, 20); //将浏览器的位置定位到X:10 Y:20
window.moveBy(0, 10); //在原有位置上移动位置(偏移量)

3.创建一个新的窗口
var win = window.open("about.htm","winName","height=300,width=400");

//参数
alwaysLowered //始终在其它浏览器窗口的后面(NN)
alwaysRaised //始终在其它浏览器窗口的前面(NN)
channelMode //是否为导航模式(IE)
copyhistory //复制历史记录至新开的窗口(NN)
dependent //新窗口随打开它的主窗口关闭而关闭(NN)
fullscreen //全屏模式(所有相关的工具栏都没有)(IE)
location //是否显示地址栏(NN,IE)
men ar //是否显示菜单栏(NN,IE)
scrollbars //是否显示滚动条(NN,IE)
status //是否显示状态栏(NN,IE)
toolbar //是否显示工具栏(NN,IE)
directories //是否显示链接栏(NN,IE)
titlebar //是否显示标题栏(NN)
hotkeys //显示菜单快捷键(NN)
innerHeight //内容区域的高度(NN)
innerWidth //内容区域的宽度(NN)
resizable //是否可以调整大小(NN,IE)
top //窗口距离桌面上边界的大小(NN,IE)
left //窗口距离桌面左边界的大小(NN,IE)
height //窗口高度(NN,IE)
width //浏览器的宽度

4.与新窗口通讯
win.focus(); //让新窗口获得焦点
win.document.write("abc"); //在新窗口上操作
win.document.close(); //结束流操作
opener.close();

5.模式窗口
window.showModalDialog("test.htm",dialogArgs,"param"); //传递对象
window.showModelessDialog("test.htm",myFunction,"param"); //传递函数
window.dialogArguments //对话框访问父窗口传递过来的对象
window.returnVal //父窗口获取对话框返回的值

//参数
center //窗口居中屏幕
dialogHeight //窗口高度
dialogWidth //窗口宽度
dialogTop //窗口距离屏幕的上边距
dialogLeft //窗口距离屏幕的左边距
edge //边框风格(raised|sunken)
help //显示帮助按钮
resizable //是否可以改变窗口大小
status //是否显示状态栏

//例子
<script>
function openDialog(myForm) {
var result = window.showModalDialog("new.html",myForm,"center");
}
</script>
<form action="#" ons mit="return false">
<input type="text" id="txtId">
<input type="button" id="btnChk" val="验证是否可用" onclick="openDialog(this.form);">
</form>

//另一个页面new.html
<script>
window.dialogArguments.btnChk.enabled = false; //将父窗口中的按钮设置为不可用
//do something to check the Id.
window.write("用户ID: " + window.dialogArguments.txtId.val + " 可使用!"); //获取文本框的值
</script>

//-----------------------------------------------------------------------

·管理框架网页( frames )
1.创建一个框架架构网页
<html>
<frameset rows="50, *">
<frame name="header" src="header.html">
<frame name="main" src="main.html">
</frameset>
</html>

2.访问框架网页
window.frames[i]
window.frames["frameName"]
window.frameName

window.frames["frameName"].frames["frameName2"]
parent.frames["frameName"]
top.frames["frameName"]

3.将某一页面定向到某框架
<a href="new.html" target="main">
location = "new.html";
parent.frameName.location.href = "new.html";
top.frameName.location = "new.html";

4.强制不让其它框架引用某页面
if (top != self) {
top.location.href = location.href;
}

5.更改框架的大小
document.framesetName.rows = "50,*";
document.framesetName.cols = "50,*";

6.动态创建框架网页
var frag = document.createDocumentFragment( );
var newFrame= document.createElement("frame");
newFrame.id = "header";
newFrame.name = "header";
newFrame.src="header.html"
frag.appendChild(newFrame);
newFrame = document.createElement("frame");
newFrame.id = "main";
newFrame.name = "main";
newFrame.src="main.html"
frag.appendChild(newFrame);
document.getElementById("masterFrameset").rows = "50,*";
北斗导航 | 卡尔曼滤波与因子图优化对比(附图优化matlab代码) - 历史数据利用:因子图通过滑动窗口保留历史状态,优化时联合多帧数据;卡尔曼滤波仅依赖当前和上一帧状态 。 - 迭代优化:因子图通过多次迭代逼近最优解,卡尔曼滤波仅单次更新 。 - 误差抑制:因子图的多次线性化可有效抑制非线性误差(如GNSS伪距观测的非线性) 。 阅读详情

相关推荐

springboot源码 红色J_通达信副图指标源码之,出手就赢

今天跟大家分享一个通达信副图指标源码,本指标没有未来函数,因为本指标没有卖点提示,所以本指标需配合主图指标使用效果会更好,简单易懂,很容易明白,所以就不过多介绍使用方法了,以下是指标的贴图。风险提示!股市有风险买卖需谨慎,本指标只做参考建议,不做买卖交易结果,自己要对自己交易结果的盈亏负责,以下是指标的源码。VAR2:=REF(LOW,1);VAR3:=SMA(ABS(LOW-VAR2),3,1)...

weixin_39859909的博客 2848

在JavaScript中组合字符串的4种方法

下面是在JavaScript中组合字符串的4种方法。我最喜欢的方法是使用模板字符串。为什么?因为它更具可读性,所以没有转义引号的反斜杠,没有笨拙的空格分隔符,也没有混乱的加号操作符 ????。 const icon = '????'; // 模板字符串 `hi ${icon}`; // join() 方法 ['hi', icon].join(' '); // Concat() 方法 ''.concat('hi ', icon); // + 操作符 'hi ' + icon; // RESULT /

前端全栈开发者 1万+

Python爬虫:无账号无限制获取企查查信息

无限制企查查爬虫 ​通过网上爬虫获取了全国所有企业,然后就需要补充企业信息,首先想到的就是企查查,启信宝等专业网站,最终选择了企查查,尝试了多种方法: 1、selenium爬虫,绕过企查查的登录验证,但账号和IP限制太大,最终放弃 2、通过requests直接请求+cookies,遇到了cookie有效期和限制问题 不断的尝试和修改参数,最终发现一种有效方式selenium+ wep 只需要IP代理,不需要账号,没有限制,因为是没有登录,拿到的信息有限,能展示的都能获取。 一、初始化..

攻城狮的家园 1万+

js基础

1.算法:用来解决问题的步骤或程序      特点:1)明确性。每个步骤都是确切的                  2)有效性。每个步骤都能够通过基本运算有效执行并且得到结果                  3)有限性。由有限的步骤构成。 2.常见错误类型        1)语法错误。(console能提示)        2)逻辑错误。        3)运行时错误。 3.基

dcwang316的博客 473

电力电子技术速通复习

一种完全纯净,结构完整的半导体晶体,其含有两种载流子而且,自由电子的浓度和空穴的浓度总是相等,一般情况下,在硅晶体中掺入P(磷)五价元素,多子为自由电子,少子为空穴;在硅晶体中掺入B(磷)三价元素,多子为空穴,少子为自由电子;6.PN结具有单相导电性,PN结具有雪崩击穿(T越高,击穿电压越大)和齐纳击穿(T越高,击穿电压越小),均可逆,热击穿不可逆;PN结具有电容效应,势垒电容(耗尽层变化等效的电容)扩散电容(非平衡少子引起的电荷量的变化等效出来的电容效应)

qq_62873973的博客 2507

Kalibr标定避坑指南:如何用AprilGrid板快速完成双目IMU标定

本文详细介绍了使用AprilGrid板进行Kalibr双目IMU联合标定的实战技巧,包括标定工具选型、数据采集优化、标定流程及结果验证。通过AprilGrid板的唯一标识性和抗遮挡优势,结合IMU静止标定和运动激励设计,显著提升标定精度。文章还提供了常见报错处理和高级优化技巧,帮助开发者高效完成传感器标定。

sunny的博客 282

常用:javascript字符串函数

concat将两个或多个字符的文本组合起来,返回一个新的字符串。var a = "hello";var b = ",world";var c = a.concat(b);alert(c); //c = "hello,world"indexOf返回字符串中一个子串第一处出现的索引(从左到右搜索)。如果没有匹配项,返回 -1 。var

Aiken的自由世界 8051

《多模态融合改进》支持目标检测、目标分割、OBB、姿态估计,配置教程

本文以为例,讲解如何配置,支持替换专栏里所有的改进方式。

Limiiiing的博客 801

JavaScript 处理字符串函数

 concat() – 将两个或多个字符的文本组合起来,返回一个新的字符串。 indexOf() – 返回字符串中一个子串第一处出现的索引。如果没有匹配项,返回 -1 。 charAT() – 返回指定位置的字符。  lastIndexOf() – 返回字符串中一个子串最后一处出现的索引,如果没有匹配项,返回 -1 。  match() – 检查一个字符串是否匹配一个正则表达式

1185

ABAP RAP 行为建模深入学习:从 Behavior Definition 到 Behavior Implementation 的完整实践指南

ABAP RAP开发指南:业务行为定义与实现 本文介绍SAP RAP框架中业务对象行为的开发方法: 分层设计 Behavior Definition声明业务能力(增删改查、校验、动作等) Behavior Implementation在ABAP类中编写具体逻辑 核心组件 使用BDL定义业务行为 通过FOR BEHAVIOR OF绑定行为池类(ABP) 在本地类实现校验/确定/动作逻辑 关键特性 支持managed/unmanaged两种实现模式 提供草稿表、并发控制等企业级功能 通过EML以别名访问实体 开

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 414

python爬取银行年报2

python爬取公司年报(巨潮资讯网)

bboysteed的博客 4731

Javascript——JS常用的方法(二)常用字符串方法

字符串方法

weixin_43551242的博客 486

PCL点云库入门(第1讲)——PCL库简介和安装(Win10/11+VS2019+PCL 1.12.0)

PCL,全称为,即点云库,是一个专注于2D/3D图像和点云处理的大型开源项目。该项目最初由斯坦福大学的杰出计算机视觉专家Radu博士及其团队开发和维护,经过十余年的发展,目前(2024年12月)已更新至1.14.1版本。PCL点云库集成了众多尖端的点云处理算法,这些算法不仅包括基础的滤波、特征估计、表面重建、配准、模型拟合和分割等,还涵盖了更高级的功能,如点云数据的语义理解、场景解析以及动态环境下的实时处理。这些算法能够对含有噪声的点云数据进行有效过滤,去除异常值;

qq_36812406的博客 1万+

JavaScript数组常用方法二

大家好,欢迎观看JavaScript教程(二十一、JavaScript数组常用方法二) reverse() 描述:能够返序排列(顺序倒过来) 语法:arr.reverse(); 注意:此方法会改变数组的原有结构 var str = ['a','b','c','d','e']; var i = str.reverse(); console.log(i); console.log(str)...

xiaoding520的博客 512

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

JavaScript的数组的常用方法(二)

遍历数组计算总和 array.reduce((reslute, currentValue, index, array) => {}, initialValue) 数组的reduce方法适合用来计算数组某一指定内容的累加或者其他运算结果的总结果。 简单实例: let arr = [1, 2, 3]; const result = arr.reduce((res, cur) => { r...

吴小迪的博客 3558

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

js 一些常用的方法 二

1.String.IndexOf 方法 (value[,startIndex]) value:要查找的 Unicode 字符。 必选项 startIndex:搜索起始位置。  可选项 不写从开头查找 该方法返回一个整数值, 指出 String 对象内子字符串的开始位置(如果没有设置第二个索引参数,从下标0开始计算)。如果没有找到子字符串,则返回 -1。 2.String.LastIn...

前端技术的学习整理 310

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

数组的常用方法/JS二

对象继承自object Array 数组 Function 函数(函数也是继承自object) 数组:逻辑关系 线性关系(一个下标对应一个值) 存储关系 连续的(数组名字保存的是首地址) 有利于存取,不利于删除和插入 数组动态扩充,可以存放任何数据类型 定义数组 (1)构造数组 var ...

qq_39112101的博客 316

JavaScript之数组常用方法(二)

JavaScript之数组常用方法(二)数组元素操作(二)1、concat[arr1,arr2,arr3]2、join(separator)3、reverse4、indexOf(searchValue[,formIndex])5、lastIndexOf(searchValue[,formIndex])6、slice(begin[,end]) 数组元素操作(二) 数组在程序中是一个非常重要的角色,无处不在,可以说有程序必定有数组存在。 1、concat[arr1,arr2,arr3] 用于合并两个或多个数组,

陈小陈的博客 377

JavaScript 数组 常用方法(二)

写在前面:续接上篇 JavaScript 数组 常用方法 数组常用方法第二弹来了; some && every 描述: every()与some()方法都是JS中数组的迭代方法。 some方法对数组中每个元素调用被提供的函数,如果有任何一个元素结果为 true 则返回 true 否则返回false。 every方法对数组中每个元素调用被提供的函数,如果所有元素结果为 true 则返回 true 否则返回false。 some一直在找符合条件的值,一旦找到,则不会继续迭代下去。 eve

gssggssg的博客 169

Javascript数组的常用方法总结二

// Array.join()方法是String.split()方法的逆向操作 // String.split()将字符串分割成若干块来创建一个数组 function joinTest() { var a = [1, 2, 3]; var a1 = a.join(); console.log(a1); var a2 = a.join(' ');

Geek_ymv的专栏 644

JavaScript 数组的常用方法(二)

JavaScript 数组的常用方法(二)7、Array.push() / Array.pop()8、Array.shift() / Array.unshift()9、Array.concat()10、Array.toString()11、Array.join()12、Array.splice()13、Array.indexOf() / Array.lastIndexOf()14、Array.includes()15、Array.reverse()16、Array.sort()17、Array.isArr

Chan__1的博客 285

JavaScript 知识梳理[二] Object 常用的方法

在开发中经常会遇到在使用JS 写业务逻辑的时候,可能经常会用的就是自己最熟的,但有时候却不是最优解,所以还是要多熟悉API ,然后做最优的选择。 构造函数方法 Object.assign() :方法用于将所有可枚举属性的值从一个或多个源对象复制到目标对象。它将返回目标对象。 Object.assign(target, ...sources) target 目标对象 sources 源对象 返回值目标对象 作用:数据合并,拷贝,至于是深拷贝还是浅拷贝 要看 这个对象是什么类型,如果嵌套了引.

Sandy_zhi的博客 180

JavaScript 数组常用方法(二)

如何截取数组中指定范围内容 如何查找元素在数组中的位置 如何判断数组中是否包含某个元素 如何把字符串转换为数组 如何截取数组中指定范围内容 arr.slice(1, 3) let arr = [1, 3, 5, 7, 9]; let res = arr.slice(1, 3); console.log(arr); //[1, 3, 5, 7, 9] ...

Spearmint_的博客 666

js数组常用方法详解(二)

接着之前数组常用方法详解(一)第二部分介绍数组剩下的一些常用方法 2.12 *** concat() concat()方法可以在现有数组全部元素基础上创建一个新数组,它首先会创建一个当前数组的副本,然后再把它的参数添加到副本末尾,最后返回这个新构建的数组。如果传入一个或多个数组,则 concat()会把这些数组的每一项都添加到结果数组。如果参数不是数组,则直接把它们添加到结果数组末尾: 不改变原始数组。 let arr = [1, 2, 3]; let arr1 = arr.concat(4, [5,.

RayShyy的博客 614

javascript常用函数 html,javaScript常用方法函数收集(二)

获取当前元素样式:function getStyle(oElm, strCssRule){var strValue = "";if(document.defaultView && document.defaultView.getComputedStyle){strValue = document.defaultView.getComputedStyle(oElm, "").getP...

weixin_36462532的博客 230

js数组的常用方法 详细 (二)

js数组的常用方法二(api)1.判断是否为数组`isArray(any)`2.数组转字符串`toString()`&`join(string)`3.数组转字符串`split(splitter)`4.数组填充`fill(value,start?,end?)`5.伪数组转真正数组`Array.from(iterable)`6.一组值转变为数组`rray.of(...items)`7.找到第一个符合条件的数`find(callback)`或下标`findIndex(callback)` 1.判断是否为数

nanxing的博客 2205
上一篇: js常用方法
下一篇: oracle树中prior的用法
danwind
博客等级 码龄19年 6粉丝 118原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值