javascript 字符串处理函数
parseFloat() 函数
可解析一个字符串,并返回一个浮点数。开头和结尾的空格是允许的。2014-10-10
字符串中的首个字符是否是数字,如果是,则对字符串进行解析,直到到达数字的末端为止,然后以数字返回该数字,而不是作为字符串。
如果字符串第一个字符不能被解析成为数字,则 parseFloat 返回 NaN (Not a Number 缩写)。
如果在解析过程中遇到了正负号(+ 或 -)、数字 (0-9)、小数点,或者科学记数法中的指数(e或E)以外的字符,
则它会忽略该字符以及之后的所有字符,返回当前已经解析到的浮点数。
可以通过调用 isNaN 函数来判断 parseFloat 的返回结果是否是 NaN。NaN 与其他数值计算后的结果也是 NaN。
如果只想解析数字的整数部分,请使用 parseInt() 方法。
parseFloat 是全局函数,不属于任何对象。
parseInt() 函数
parseInt(string, radix)
radix 进制 (2-36) 可选参数 ,解析为该进制的整数。
可解析一个字符串,并返回一个整数。
parseInt("10"); //返回 10
parseInt("19",10); //返回 19 (10+9)
parseInt("11",2); //返回 3 (2+1)
parseInt("17",8); //返回 15 (8+7)
parseInt("1f",16); //返回 31 (16+15)
parseInt("010"); //未定:返回 10 或 8
全局函数。
Number(object) 函数
把对象的值转换为数字。如果对象的值无法转换为数字,那么 Number() 函数返回 NaN。
如果参数是 Date 对象,Number() 返回从 1970 年 1 月 1 日至今的毫秒数。
true转换为1 ,false转换为 0
全局函数。
Number(true) 1
Number("true") NaN
isNaN(x) 函数
如果 x 是特殊的非数字值 NaN(或者能被转换为这样的值),返回的值就是 true。
如果 x 是其他值 , 则返回 false。
全局函数。
String(object) 函数
把对象的值转换为字符串。
String(1) = true
String(new Date()) = Tue Sep 30 2014 12:38:00 GMT+0800 (中国标准时间)
eval(string) 函数
可计算某个字符串,并执行其中的的 JavaScript 代码。
返回值:通过计算 string 得到的值(如果有的话)。
eval("alert('Hello world')") // 弹出Hello world
该方法只接受原始字符串作为参数,如果 string 参数不是原始字符串,那么该方法将不作任何改变地返回。
因此请不要为 eval() 函数传递 String 对象来作为参数。
如果参数中没有合法的表达式和语句,则抛出 SyntaxError 异常。
如果传递给 eval() 的 Javascript 代码生成了一个异常,eval() 将把该异常传递给调用者。
<script>
try {
alert("Result:" + eval(prompt("Enter an expression:","")));
}
catch(e) {
alert(e);
}
</script>
如果非法调用 eval(),则抛出 EvalError 异常。
concat()
方法用于连接两个或多个字符串。
该方法不会改变现有的数组,而仅仅会返回被连接数组的一个副本。
arrayObject.concat(arrayX,arrayX,......,arrayX)
concat() 方法将把它的所有参数转换成字符串,然后按顺序连接到字符串 stringObject 的尾部,并返回连接后的字符串。请注意,stringObject 本身并没有被更改。
提示:请注意,使用 " + " 运算符来进行字符串的连接运算通常会更简便一些。
示例1
var str1="Hello "
var str2="world!"
document.write(str1.concat(str2)) // Hello world!
document.write(str1) // Hello
示例2
var a = [1,'abc',3];
document.write(a.concat(4,5)); // 1,abc,3,4,5
document.write(a) // 1,abc,3
document.write(a[1]) // abc
示例3
var arr = new Array(3)
arr[0] = 1
arr[1] = 2
arr[2] = 3
var arr2 = new Array(3)
arr2[0] = 4
arr2[1] = 5
arr2[2] = 6
var arr3 = new Array(3)
arr3[0] = 7
arr3[1] = 'abc'
arr3[2] = 9
document.write(arr.concat(arr2)) // 1,2,3,7,8,9
document.write(arr.concat(arr2,arr3)) // 1,2,3,4,5,6,7,abc,9
parse() 方法
可解析一个日期时间字符串,并返回 1970/1/1 午夜距离该日期时间的毫秒数。
Date.parse(datestring)
一般采用 Date.parse() 的形式来调用,而不是通过 dateobject.parse() 调用该方法。
var d = Date.parse("Jul 8, 2005")
document.write(d) // 1120752000000
toString() 方法
示例1 Number
var num1 = 10;
document.write(num1.toString(2)); //输出1010
document.write(num1.toString(8)); //输出12
document.write(num1.toString(16)); //输出A
示例2 数组
var arr= new Array (1,2,3);
document.write(arr.toString())
示例3 字符串
var arr= "true"
document.write(arr.toString()) // true
var arr= 4
document.write(arr.toString()) // 4
示例4 boolen
var arr= new Boolean(5)
document.write(arr.toString()) // true
var arr= new Boolean(0)
document.write(arr.toString()) //false
示例5 时间对象
var arr = new Date();
document.write(arr.toString()) // Wed Oct 01 2014 13:29:40 GMT+0800 (中国标准时间)
document.write(arr.toLocaleString()) // 2014年10月1日 下午1:30:33
示例6 function
function add(a,b){
var a,b,c;
c = a + b;
return c;
}
document.write(add.toString()); // function add(a,b){ var a,b,c; c = a + b; return c; }
split() 方法
用于把一个字符串分割成字符串数组。返回值为数组。
stringObject.split(separator,howmany)
separator 必需。字符串或正则表达式,从该参数指定的地方分割 stringObject。
howmany 可选。该参数可指定返回的数组的最大长度。如果没有设置该参数,整个字符串都会被分割返回。
如果把空字符串 ("") 用作 separator,那么 stringObject 中的每个字符之间都会被分割。
"2:3:4:5".split(":") // 将返回["2", "3", "4", "5"]
"|a|b|c".split("|") // 将返回["", "a", "b", "c"]
String.split() 执行的操作与 Array.join 执行的操作是相反的。
JavaScript join() 方法
join() 方法用于把数组中的所有元素放入一个字符串。不改变arrayObject。
arrayObject.join(separator)
separator 可选。指定要使用的分隔符。如果省略该参数,则使用逗号作为分隔符。
<script>
var arr = [];
arr[0] = "hello"
arr[1] = "china"
arr[2] = "ren"
document.write(arr.join() + "<br />"); // hello,china,ren
document.write(arr.join(".") + "<br />"); // hello.china.ren
document.write(arr.join("")); // hellochinaren
</script>
splice() 方法
向从数组中添加/删除项目,然后返回被删除的项目。
可删除从 index 处开始的零个或多个元素,并且用参数列表中声明的一个或多个值来替换那些被删除的元素。
arrayObject.splice(index,howmany,item1,.....,itemX)
index 必需。整数,规定添加/删除项目的位置,使用负数可从数组结尾处规定位置。
howmany 必需。要删除的项目数量。如果设置为 0,则不会删除项目。
item1, ..., itemX 可选。向数组添加的新项目。
splice() 方法与 slice() 方法的作用是不同的,splice() 方法会直接对数组进行修改。
一个splice(),split(),join()结合使用的方法
<script>
// 将hello_word 转成 HELLOWORD
var atr,strArr;
str ='hello_word';
strArr = str.split('');
strArr.splice(5,1);
document.write(strArr.join('').toUpperCase());
</script>
slice() 方法
可提取字符串的某个部分,返回值是一个新的字符串。
包括字符串 stringObject 从 start 开始(包括 start)到 end 结束(不包括 end)为止的所有字符。
stringObject.slice(start,end) star和end都是起始下标。( star = 0 表示第一个元素 )
start 必需。 规定从何处开始选取。如果是负数,那么尾部开始算起的位置。
end 可选。规定从何处结束选取。如果无参数,那么切分的字符串包含从 start 到结束的所有元素。
如果这个参数是负数,那么它规定的是从数组尾部开始算起的元素。
请注意,该方法并不会修改字符串,而是返回一个子字符串。
还要注意的是,String.slice() 与 Array.slice() 相似。
reverse() 方法
用于颠倒数组中元素的顺序。该方法会改变原来的数组,而不会创建新的数组。
arrayObject.reverse()
unshift
可向数组的开头添加一个或更多元素,并返回新的长度。不创建新的数组,而是直接修改原有的数组。
arrayObject.unshift(newelement1,newelement2,....,newelementX)
newelement1 必需。向数组添加的第一个元素。
newelement2 可选。向数组添加的第二个元素。
newelementX 可选。可添加若干个元素。
返回值
arrayObject 的新长度。与push()方法相似。
unshift() IE 不支持。
shift() 方法
用于把数组的第一个元素从其中删除,并返回第一个元素的值。该方法不创建新数组,而是直接修改原有的 arrayObject。
如果数组是空的,那么 shift() 方法将不进行任何操作,返回 undefined 值。
arrayObject.shift()
sort()方法
用于对数组的元素进行排序。
arrayObject.sort(sortby)
sortby 可选。规定排序顺序。必须是函数。无参数是按照字符编码的顺序进行排序。
对数组的引用。请注意,数组在原数组上进行排序,不生成副本。
如果想按照其他标准进行排序,就需要提供比较函数,该函数要比较两个值,然后返回一个用于说明这两个值的相对顺序的数字。
function sortNumber(a, b)
{
return a - b // 升序
return b - a // 降序
}
比较函数应该具有两个参数 a 和 b,其返回值如下:
若 a 小于 b,在排序后的数组中 a 应该出现在 b 之前,则返回一个小于 0 的值。
若 a 等于 b,则返回 0。
若 a 大于 b,则返回一个大于 0 的值。
函数名称 | 返回值 | 是否改变原对象 | 原对象如何改变 | 出现意外的情况 | 意外情况返回 | 浏览器支持 |
pop() | 数组最后一个值 | 是 | 删除最后一个值的新数组 | 原数组为空 | undefine | |
push() | 新数组的长度个数 | 是 | 添加值后的新数组 | 无 | ||
unshift() | 新数组的长度个数 | 是 | 添加值后的新数组 | 无 | ie不支持 | |
shift() | 数组最前一个值 | 是 | 删除最前一个值的新数组 | 原数组为空 | undefine | |
splice(index,number,item) | 修改后的数组 | 是 | 删除/增加数组元素 | 无 | ||
slice(star,[end]) | 截取的新字符串和数组 | 否 | 无 | |||
split(separator,number) | 字符串分割后的数组 | 否 | 无 | |||
join(separator) | 数组连接后的字符串 | 否 | 无 | |||
reverse() | 新数组 | 是 | 元素颠倒后的新数组 | 无 | ||
sort() | 新数组 | 是 | 排序后数组 | 无 |