工作生活

JS字符串详解

2019-07-04  本文已影响0人  任建坤123

1,字符串的创建方法
String类型是字符串的对象包装类型,可以使用String构造函数创建。
有3种方法来创建字符串

var str = new String("Hello World");
var str = String("Hello World");
var str = 'xxx';

2.方法
String 对象的方法也可以在所有基本的字符串值中访问到。其中,继承的 valueOf()、toLocale- String()和 toString()方法,都返回对象所表示的基本字符串值。

String 类型的每个实例都有一个 length 属性,表示字符串中包含多个字符。

 比如
var stringValue = "hello world"; 
alert(stringValue.length);   //"11" 

这个例子输出了字符串"hello world"中的字符数量,即"11",空格也算在其中。

1.字符方法
charAt()和 charCodeAt():用于访问字符串中特定字符的方法,这两个方法都接收一个 参数,即基于 0 的字符位置。其中,charAt()方法以单字符字符串的形式返回给定位置的那个字符

例如
var str = "hello world"; 
alert(str.charAt(1));   //"e" ,字符串"hello world"位置 1处的字符是"e",因此调用 charAt(1)就返回了"e"
var str2 = "hello world"; 
alert(str2.charCodeAt(1));   //"101" ,101是小写字母"e"的字符编码。 
  1. 字符串操作方法
    concat(),用于将一或多个字符串拼接起来, 返回拼接得到的新字符串
  例如
  var str1 = "hello ";
  var result = str1.concat("world"); 
  alert(result);          //"hello world" 
  alert(str1);      //"hello" 不改变原字符串

ES还提供了三个基于子字符串创建新字符串的方法:slice()、substr() 和 substring()。
这三个方法都会返回被操作字符串的一个子字符串,而且都接受一或两个参数。
第一个参数指定子字符串的开始位置,第二个参数有所不同。
具体来说就是,slice()和substring()的第二个参数指定的是子字符串最后一个字符后面的位置。
而substr()的第二个参数指的是返回的字符的个数。
如果没有给这些方法传第二个参数,则将字符串的末尾作为结束位置。
都不会修改字符串本身(子字符串)。

 例如
var str = "hello world";
console.log(str.slice(3));    //"lo world"
console.log(str.substring(3));  //"lo world"
console.log(str.substr(3));    //"lo world"
console.log(str.slice(3,7));   //"lo w"
console.log(str.substring(3,7)); //"lo w"
console.log(str.substr(3,7));  //"lo worl"

如果在传递给这些方法的参数是负数的情况时,他们的行为就不相同了。

例如:
var str = "hello world";
console.log(str.slice(-3));    //"rld"  
console.log(str.substring(-3);  //"hello world"  此方法的参数是负数都转换为0
console.log(str.substr(-3));    //"rld"
console.log(str.slice(3,-4));   //"lo w"
console.log(str.substring(3,-4)); //"hel"  此方法会将较小的数作为开始位置
console.log(str.substr(3,-4));  //""(空字符串)

我们来总结一下:

str.slice(start, end); 有end时,start<= 范围 < end , [负数反向截取],start的位置必须【在前】 end的位置必须【在后】

str.substring(start, end);// //有end时,start<= 字符 <end,只有start时,start<= 字符,有负数 ,把负数置 0,小的数为start, 大的数为end

substr(index,howmany);//返回截取的字符

3.字符串位置方法
indexOf()和 lastIndexOf():可以从字符串中查找子字符串的方法,
这两个方法都是从 一个字符串中搜索给定的子字符串,然后返子字符串的位置(如果没有找到该子字符串,则返回-1)。区别在于:indexOf()方法从字符串的开头向后搜索子字符串,而 lastIndexOf()方法 是从字符串的末尾向前搜索子字符串。

例如
var str = "hello world"; 
alert(str.indexOf("o")); //4 ,从前往后找,子字符串"o"第一次出现的位置是 4,即"hello"中的"o";
alert(str.lastIndexOf("o"));   //7 ,从后往前找,最后一次出现的位置是 7,即"world"中的 "o";

如果"o"在这个字符串中仅出现了一次,那么 indexOf()和lastIndexOf()会返回相同的位置值。 

这两个方法都可以接收可选的第二个参数,表示从字符串中的哪个位置开始搜索。换句话说, indexOf()会从该参数指定的位置向后搜索,忽略该位置之前的所有字符;而 lastIndexOf()则会从 指定的位置向前搜索,忽略该位置之后的所有字符。

例如
var str = "hello world"; 
alert(str.indexOf("o", 6));//7 ,在将第二个参数 6 传递给这两个方法之后,得到了与前面例子相反的结果。
                          //这一次,由于 indexOf()是从位置 6(字母"w")开始向后搜索,
                          //结果在位置 7找到了"o",,因此它返回 7
alert(str.lastIndexOf("o", 6));//4 ,从后向前数 6 开始向前搜索。找到"hello"中的"o",因此它返回 4。

4. trim()方法
ECMAScript 5为所有字符串定义了 trim()方法。此方法会创建一个字符串的副本,删除前置及 后缀的所有空格,然后返回结果。

var str = "   hello world   ";
function trim(str){
    var newStr = str.replace(/^\s+|\s+$/g,"")
    return newStr;
}
var newStr = trim(str);
console.log(newStr);//"hello world"

例如
var str = "  hello world   ";
var newStr = str.trim();
console.log(newStr);  //"hello world",删除了前后的空格
console.log(str);     //"  hello world   "

5. 字符串大小写转换方法
toLowerCase() 转小写
toLocaleLowerCase() 根据特定地区的语言转小写
toUpperCase() 转大写
toLocaleUpperCase() 根据特定地区转大写

例如:
var str = "hello world";
console.log(str.toUpperCase());    //"HELLO WORLD"
console.log(str.toLocaleUpperCase());  //"HELLO WORLD"
console.log(str.toLowerCase());   //"hello world"
console.log(str.toLocaleLowerCase());  //"hello world"

如果不知道自己的代码将在哪种语言环境中运行的情况下,还是使用针对地区的方法更稳妥一些。
好了,今天就暂时到这里了,想知道更多的可以点个关注,

愚才疏学浅,故难免错漏,敬请海涵,还望不吝指出,万分感激!!!

上一篇下一篇

猜你喜欢

热点阅读