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"的字符编码。
- 字符串操作方法
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"
如果不知道自己的代码将在哪种语言环境中运行的情况下,还是使用针对地区的方法更稳妥一些。
好了,今天就暂时到这里了,想知道更多的可以点个关注,
愚才疏学浅,故难免错漏,敬请海涵,还望不吝指出,万分感激!!!
网友评论