字符串操作

1、.indexOf() 返回某个字符在字符串中首次出现的位置大小写敏感。如果没有,返回 -1 。
  • indexOf(value, index)
    • searchvalue  必需。 规定需检索的字符串值。
    • index     可选。 整数,规定在字符串中开始检索的位置。
例:
var char = "hello world everyone";
console.log( char.indexOf( 'w' ) );     // 6 
console.log( char.indexOf( 'w', 7 ) );  // 21  从位置7开始,world的'w'不在范围内。
console.log( char.indexOf( 'world' ) ); // 6 
2、.charAt() 返回指定位置的字符。
  • stringObject.charAt(index)   index: 必需。字符在字符串中的下标。
var char = "hello world everyonesw";
console.log( char.charAt( 1 ) )  // e
3、.charCodeAt( index ) 返回指定位置的字符的 Unicode 编码。这个返回值是 0 - 65535 之间的整数。
  • stringObject.charCodeAt( index )
    • index   必需。 表示字符串中某个位置的数字,即字符在字符串中的下标。
    •  如果 index 是负数,或大于等于字符串的长度,则 charCodeAt() 返回 NaN。
例:
var char = "hello world everyone";
console.log( char.charCodeAt( 1 ) );  // 101
console.log( char.charCodeAt( 2 ) );  // 108
4、.substring() 方法用于提取字符串中介于两个指定下标之间的字符。
  • “stringObject.substring(start,stop)”
    • start 必需,非负整数,规定开始字符所在位置。
    • stop 可选,非负整数,规定结束字符所在位置。如果省略,则返回的子串会一直到字符串的结尾。
var char = "hello world everyonesw";
console.log( char.substring( 3 ) )  // lo world everyonesw  
console.log( char.substring( 0,1 ) )  // h 
console.log( char.substring( 0,21 ) )  // hello world everyones  
5.join() 方法用于把数组中的所有元素放入一个字符串。元素是通过指定的分隔符进行分隔的。返回一个字符串。
  • strObj.join(divide)
var arr = ["hello","I","like","this"];
console.log(arr.join(';'));  //hello;I;like;this
6.split() 方法把一个字符串分割成数组(join相反)。
  • strObj.split(separator,howmany)
    • separator 必需。字符串或正则表达式,从该参数指定的地方分割 stringObject。
    • howmany 可选。指定返回的数组的最大长度。子串<=改值。如果没有设置,整个字符串都会被分割。
var str2 = "How are you doing today?";
console.log(str2.split(" ")); //["How", "are", "you", "doing", "today?"]
console.log(str2.split(""));  // ["H", "o", "w", " ", "a", "r", "e", " ", "y", "o", "u", " ", "d", "o", "i", "n", "g", " ", "t", "o", "d", "a", "y", "?"]
console.log(str2.split(" ", 3));  //  ["How", "are", "you"]
7、ECMAscript 没有对该方法进行标准化,因此反对使用它。
  • stringObject.substr(start,length);
    • start 必需。要抽取的子串的起始下标。必须是数值。如果是负数,那么该参数声明从字符串的尾部开始算起的位置。也就是说,-1 指字符串中最后一个字符,-2 指倒数第二个字符,以此类推。

// length 可选。子串中的字符数。必须是数值。如果省略了该参数,那么返回从 stringObject 的开始位置到结尾的字串。

var str = "hello world";
console.log(str.substr(1,4));  //(firefox&chrome&IE7) ello  
console.log(str.substr(-1,4));  //(firefox&chrome) d   (IE7) hell
8.concat() 方法用于连接两个或多个数组(字符串)。该方法不会改变现有的数组,而仅仅会返回被连接数组的一个副本。
var str3 = "helllo";
var str4 = "world";
var arr1 = [3,5];
var arr2 = [6,7];
console.log(arr2.concat(arr1));  //[6, 7, 3, 5]
console.log(str3.concat(str4));  //hellloworld

9.大小写转换,IE7支持

与 toLowerCase() 不同的是,toLocaleLowerCase() 方法按照本地方式把字符串转换为小写。只有几种语言(如土耳其语)具有地方特有的大小写映射,所有该方法的返回值通常与 toLowerCase() 一样。

// 大转小
var low = "HELLO WORLD";
console.log(low.toLowerCase());
console.log(low.toLocaleLowerCase());
// 小转大
var pper = "hellow world";
console.log(pper.toUpperCase());
console.log(pper.toLocaleUpperCase());

10.match() 方法可在字符串内检索指定的值,或找到一个或多个正则表达式的匹配。该方法类似 indexOf() 和 lastIndexOf(),但是它返回指定的值,而不是字符串的位置。

如果 regexp 没有标志 g,那么 match() 方法就只能在 stringObject 中执行一次匹配。

不过全局匹配返回的数组的内容与前者大不相同,它的数组元素中存放的是 stringObject 中所有的匹配子串,而且也没有 index 属性或 input 属性。

在全局检索模式下,match() 即不提供与子表达式匹配的文本的信息,也不声明每个匹配子串的位置。如果您需要这些全局检索的信息,可以使用 RegExp.exec()。

var str="Hello world!";
console.log(str.match("world"));// ["world", index: 6, input: "Hello world!"]
console.log(str.match("World")); //null
console.log(str.match("worlld"));  //null
console.log(str.match("world!"));//["world", index: 6, input: "Hello world!"]
var patt5 = /\w/g;
console.log( str.match( patt5 ) ); //["H", "e", "l", "l", "o", "w", "o", "r", "l", "d"]

11.exec()

相同:在调用非全局的 RegExp 对象的 exec() 方法时,返回的数组与调用方法 String.match() 返回的数组是相同的。

不同:,无论 RegExpObject 是否是全局模式,exec() 都会把完整的细节添加到它返回的数组中。这就是 exec() 与 String.match() 的不同之处,后者在全局模式下返回的信息要少得多。

exec() 方法还返回两个属性。index 属性声明的是匹配文本的第一个字符的位置。input 属性则存放的是被检索的字符串 string。

var str = "Visit W3School or W3School and W2School"; 
var patt = /W2School/g;
var result = patt.exec(str);
console.log(result);  //

12.search() 方法用于检索字符串中指定的子字符串,或检索与正则表达式相匹配的子字符串。

返回值: stringObject 中第一个与 regexp 相匹配的子串的起始位置。

注释:如果没有找到任何匹配的子串,则返回 -1。search() 方法不执行全局匹配,它将忽略标志 g

// 8.search()
var str8 = "hello world 34";
console.log(str8.search("world")); // 6
var patt = /[0-9]/g;
console.log(str8.search(patt));  // 12

13.replace() 方法用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串。

var str = "hello world everyone";
console.log(str.replace(/hello/,'hi')); // hi world everyone
console.log(str.replace('hello','hi')); //hi world everyone

14.test() 方法用于检测一个字符串是否匹配某个模式.如果字符串 string 中含有与 RegExpObject 匹配的文本,则返回 true,否则返回 false。

var str = "Visit W3School";
var patt1 = new RegExp("W3School");
var result = patt1.test(str);
console.log(result);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值