js中object、字符串与正则表达式的方法

时间:2024-04-15 02:10:21

对象

1.object.hasOwnProperty(name)

检测object是否包含一个名为name的属性,那么hasOwnProperty方法返回true,但是不包括其原型上的属性。

正则表达式

2.regexp.exec(string)

exec方法是正则表达式最强大和最慢的方法。如果成功的匹配regexp和字符串,他会返回一个数组。数组中下标为0的元素将会包含正则表达式regexp匹配的子字符串。下标为1的元素是分组1捕获的文本,下标为2的元素是分组2捕获的文本。如果匹配失败,会返回null。

如果regexp带有一个g标志。查找不是从这个字符串的其实位置开始,而是从regexp.lastIndex(初始值为0)位置开始。如果匹配成功,那么regexp.lastIndex将被设置为该匹配后第一个字符的位置。不成功的匹配会重置regexp.lastIndex为0。

3.regexp.test(string)

是使用正则表达式的最简单和最快的方法。如果该regexp匹配string,返回true,否则返回false。不要对这样方法使用g标识。

字符串

4.string.chatAt(pos)

返回:在string中pos处的字符串。如果pos小于0或者大于等于字符串长度string.length,他会返回空字符串。

例如:

 var foo=function(){
var str="",str1="abc",c=undefined,d=null;
console.log(str.charAt(0));//没有输出结果
console.log(str1.charAt(1));//b
console.log(c.charAt(1));//报错
console.log(d.charAt(1));//报错 };
foo();

charAt()可以这样实现

String.method("charAt",function(pos){

return this.slice(pos,pos+1);

});

5.string.charCodeAt(pos)

返回:以整数形式标识的string中pos位置的字符的字符编码。如果pos小于0或者大于等于字符串长度string.length,他会返回NaN。

6.string.cancat(string……)

返回:返回连接在一起的新的字符串,但是用+更加方便。

例如:

var s="c".cancat("a","n");

7.string.indexOf(searchString,position)

返回:在string内部查找searchString。

如果找到,返回第一个匹配字符的位置,否则返回-1.可选参数position可指从某个指定的位置开始查找:

 var foo=function(){
var str="",str1="abcabc",c=undefined,d=null;
console.log(str.indexOf("a",0));//-1
console.log(str1.indexOf("a",0));//
console.log(str1.indexOf("a",1));//
console.log(c.indexOf("a",0));//报错
console.log(d.indexOf("a",0));//报错 };
foo();

8.string.lastIndexOf(searchString,position)

返回:searchString的从string末尾开始查找的位置。

例如:

 var text = 'Mississippi';
var p = text.lastIndexOf('ss'); // p is 5
p = text.lastIndexOf('ss', 3); // p is 2
p = text.lastIndexOf('ss', 6); // p is 5

9.string.localeCompare(that)

返回:比较两个字符串。如何比较没有特别的说明,如果string比字符串that小,那么结果为负数。如果他们是相等的,结果为0.

10.string.match(regexp)

返回:让字符串与正则表达式匹配。依据g标识决定如何进行匹配。如果没有g标识,那么调用string.match(regexp)的结果与调用regexp.exec(string)结果相同。然而,如果regexp带有g标识符,他将生成一个包含所有匹配(除捕获分组之外)的数组:

11.string.replace(searchValue,replaceValue)

返回:对string进行查找和替换操作,并返回一个新的字符串。参数searchValue可以是一个字符串或一个正则表达式对象。如果是一个字符串,那么searchValue只会在第一次出现的地方被替换。例如:

var result = "mother_in_law".replace('_', '-'); ,如果searchValue是一个正则表达式并且带有g标志,他会替换所有的匹配,如果没有带g标识,它会仅替换第1个匹配。例如:

 var oldareacode = /\((\d{3})\)/g;
var p = '(555)666-1212'.replace(oldareacode, '$1-');
// p is '555-555-1212'

replaceValue可以是一个字符串或一个函数。如果replaceValue是一个函数,那么每遇到一次匹配函数就会被调用一次,而该函数返回的字符串会被用作替换文本。传递给这个函数的第一个参数是整个被匹配的文本,第2个参数是分组1捕获的文本,再下一个参数是分组2捕获的文本,依次类推。

12.string.slice(start,end)

返回:复制string中的一部分来构造一个新的字符串。

如果start参数是负数,它将与string.length相加。

end参数是可选的,且默认值是string.length。如果end参数是负数,那么它将与string.length相加。end参数等于你要取得最后一个字符位置加1。

想要从位置p开始的n个字符,就用string.slice(p,p+n);

例如:

 var text = 'and in it he says "Any damn fool could';
var a = text.slice(18);
// a is '"Any damn fool could'
var b = text.slice(0, 3);
// b is 'and'
var c = text.slice(−5);
// c is 'could'
var d = text.slice(19, 32);
// d is 'Any damn fool'

13.string.split(separator,limit)

返回:将string分割成片段来创建的一个字符串数组。可选参数limit可以限制被分割的片段数量。separator参数可以是一个字符串或一个正则表达式。

如果separator是一个空白字符,会返回一个单字符数组,例如:

 var digits = '0123456789';
var a = digits.split('', 5);
// a is ['0', '1', '2', '3', '456789']

否则,会查找所有separator出现的地方。分隔符两边的每个单元文本都会被复制到该数组中。此方法会忽略g标识符。

来自捕获组的文本会白包含在分割后的数组中:

 var text = 'last,  first ,middle';
var e = text.split(/\s*(,)\s*/);
// e is [
// 'last',
// ',',
// 'first',
// ',',
// 'middle'
// ]

14.string.search(regexp)

与indexOf相似,接收一个正则表达式对象作为参数而不是一个字符串。如果找到匹配,它返回第1个匹配的首字符的位置,如果没有找到匹配,则返回-1。此方法会忽略g标志,且没有position参数:

 var text = 'and in it he says "Any damn fool could';
var pos = text.search(/["']/); // pos is 18

15.string.substring(start,end)

与slice一样,但是不能处理负参数。

16.string.toLocaleLowerCase()

返回一个新的字符串,使用本地化规则把这个string中的所有的字母转换为小写格式。

17.string.LocaleUpperCase()

返回一个新字符串,使用本地化规则把这个string中的所有的字母转换为大写格式。

18.string.toLowerCase()

返回一个新的字符串,string中的所有字母都被转化为小写格式

19.string.toUpperCase()

返回一个新的字符串,string中的所有字母都被转化为大写格式

20.string.fromCharCode(char……)

根据一串数字编码返回一个字符串

var a = String.fromCharCode(67, 97, 116);
// a is 'Cat'