String的简介

Posted smart-baixiaodu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了String的简介相关的知识,希望对你有一定的参考价值。

字符串用于存储和处理文本。

String的定义

var str=new String(‘hello world‘)
var str=String(‘hello world‘)
var str = "hello world";//字面量的方式

String的实例方法

DOM相关

<html>
<body>
<script type="text/javascript">
var txt="Hello World!"
document.write("<p>Big: " + txt.big() + "</p>")
document.write("<p>Small: " + txt.small() + "</p>")
document.write("<p>Bold: " + txt.bold() + "</p>")
document.write("<p>Italic: " + txt.italics() + "</p>")
document.write("<p>Blink: " + txt.blink() + " (does not work in IE)</p>")
document.write("<p>Fixed: " + txt.fixed() + "</p>")
document.write("<p>Strike: " + txt.strike() + "</p>")
document.write("<p>Fontcolor: " + txt.fontcolor("Red") + "</p>")
document.write("<p>Fontsize: " + txt.fontsize(16) + "</p>")
document.write("<p>Lowercase: " + txt.toLowerCase() + "</p>")
document.write("<p>Uppercase: " + txt.toUpperCase() + "</p>")
document.write("<p>Subscript: " + txt.sub() + "</p>")
document.write("<p>Superscript: " + txt.sup() + "</p>")
document.write("<p>Link: " + txt.link("http://www.baidu.com") + "</p>")
</script>
</body>

ECMA标准

toString

返回相应值的字符串
undefined和null没有返回值

var a=undefined
console.log(a.toString())//Cannot read property ‘toString‘ of undefined
console.log(null.toString())//Cannot read property ‘toString‘ of null
console.log(true.toString()) //"true"
console.log(12.3.toString()) // "12.3"
console.log((123).toString()) //"123" 整形需加()后才能调用toString
console.log([].toString()) //""
console.log({}.toString()) // "[object Object]"

valueOf

返回String类型的原始值

console.log(‘Hello World‘.valueOf()) //"Hello World"

charAt

返回一个字符串中指定位置的字符,编号从0开始,若传入个不存在的数值,就返回空字符串

var str = new String("Hello World!");
var newstr=str.charAt(2);
var newstr1=str.charAt(15);
console.log(newstr);//"l"
console.log(newstr1);//""

charCodeAt

返回一个字符串中指定位置字符的Unicode编码;若传入个不存在的位置数值,返回NaN

var str = new String("Hello World!");
var newstr=str.charCodeAt(5);
var newstr1=str.charCodeAt(15);
console.log(newstr);//32
console.log(newstr1);//NaN

toLowerCase

将字符串中的大写字母全部转换为对应的小写字母,与toLocaleLowerCase方法不同的是,后者按照本地方式把字符串转换为小写,(如土耳其语)具有地方特有的大小写映射。

 var str = new String("Hello World!");
console.log(str.toLowerCase());//HELLO WORLD!

toUpperCase

将字符串中所有小写字母转换为对应的大写字母,与toLocaleUpperCase方法不同的是,后者按照本地方式把字符串转换为大写,(如土耳其语)具有地方特有的大小写映射。

var str = new String("Hello World!");
console.log(str.toUpperCase());//hello world!

replace

接受两个参数,将参数一的正则或字符串直接量替换为参数二:

var str = new String("Hello World!");
console.log(str.replace("Hello", "Hi"));//Hi World!

match

在字符串中查找指定的字符串。若查找成功,返回该字符串,否则返回null

var str = new String("Hello World!");
console.log(str.match("Hello")) //["Hello"]
console.log(str.match("Hi")) //null

返回查找正则表达式第一个匹配的位置

var str = new String("Hello World!");
console.log( ‘abcd‘.search(/\d+/) ) //-1
console.log(‘abcd1234‘.search(/\d+/))) //4

concat

返回拼接后的字符串,原字符串不变,可以同时连接多个字符串
javascript var str = new String("Hello World!"); var newstr=str.concat("Hi"); console.log(newstr);//"Hello World!Hi" console.log(str);//"Hello World!" var str = new String("Hello World!"); var newstr=str.concat("Hi","World"); console.log(newstr);//"Hello World!HiWorld" console.log(str);//"Hello World!"

indexOf

返回字符串中检索指定字符的位置,接收两个参数,第一个参数必徐,第二个为可选参数,指定检索开始的位置。若检索成功,则返回匹配子串的首字母下标,否则返回-1。
lastIndexOf从后往前开始查找一个字符串或字符,并返回找到的位置(从0开始计数)。若未找到,返回-1

参数是一个

var str = new String("Hello World!");
var newstr=str.indexOf("World");
console.log(newstr);//6

参数是二个

var str = new String("Hello World!");
var newstr=str.indexOf("World",7);
console.log(newstr);//-1

localeCompare

实例与参数进行比较,返回比较结果
若实例比参数大,返回0;若实例与参数相等,返回1;若实例比参数小,返回-1

var s=‘abc‘;
console.log(s.localeCompare(‘ab‘)); //1
console.log(s.localeCompare(‘abc‘)); // 0
console.log(s.localeCompare(‘abd‘)); // 1

split

用于将字符串分割,接受两个参数,第一个参数必需指定分割符,第二参数(可选)返回分割的几个子串数组

参数是一个

var str = new String("Hello World!");
var newstr=str.split(" ");
console.log(newstr);//["Hello", "World!"]
console.log(str);//"Hello World!"

参数是二个

var str = new String("Hello World!");
var newstr=str.split(" "1);
console.log(newstr);//["Hello"]
console.log(str);//"Hello World!"

slice

返回从字符串第一个参数(必需表示起始位置)到第二个参数(可选表示结束前一个位置)的子串,原字符串不变

参数为一个 第一个参数(可为负数从后往前数),省略第二个参数,返回从0开始,一直到最后的字符

var str = ‘abcdefg‘;
console.log(str.slice(0));//"abcdefg"
console.log(str.slice(-3));//"efg"

参数为2个 第二个参数表示子串提取的结束位置索引(不包括此位置的字符);若为负数从后往前数

var str = ‘abcdefg‘;
console.log(str.slice(1, 3) ); // bc
console.log(str.slice(-3, -1) ); // ef

substr

返回从字符串第一个参数(必需表示开始位置)计算到第二个参数(可选表示长度)的子串,原字符串不变

参数为一个 第一个参数(可为负数从后往前数),省略第二个参数,返回从0开始,一直到最后的字符

var str = ‘abcdefg‘;
console.log( s.substr(0));//"abcdefg"
console.log( s.substr(-3));//"efg"

参数为2个

var str = ‘abcdefg‘;
console.log( str.substr(0, 3) ); // abc
console.log( str.substr(2, 4) ); // cdef
console.log( str.substr(-2, 3) ); // fg

substring

返回从字符串第一个参数(必需表示起始位置)到第二个参数(可选表示结束前一个位置)的子串,原字符串不变

参数为一个 第一个参数(若为负数视为0处理),省略第二个参数,返回从0开始,一直到最后的字符

var str = ‘abcdefg‘;
console.log(str.substring(0));//"abcdefg"
console.log(str.substring(-3));//"abcdefg"

参数为2个 第二个参数表示子串提取的结束位置索引(不包括此位置的字符);若为负数,返回空

var str = ‘abcdefg‘;
console.log(str.substring(0, 3) ); // abc
console.log( str.substring(2, 4) ); // cd
console.log( str.substring(-2, 3) ); // abc
console.log( str.substring(-3, -1) ); // ""

trim

从一个字符串的两端删除空白字符

var str= ‘   hello  world  ‘;
console.log(str.trim());//"hello  world"

ES6方法

codePointAt

JavaScript 内部,字符以 UTF-16 的格式储存,每个字符固定为2个字节。
对于那些需要4个字节储存的字符(Unicode 码点大于0xFFFF的字符),JavaScript 会认为它们是两个字符。

var s = "??";
s.length // 2
s.charAt(0) // ‘‘
s.charAt(1) // ‘‘
s.charCodeAt(0) // 55362
s.charCodeAt(1) // 57271

codePointAt

能够正确处理 4 个字节储存的字符,返回一个字符的码点。

let s = ‘??a‘;

s.codePointAt(0) // 134071
s.codePointAt(1) // 57271

s.codePointAt(2) // 97

codePointAt方法是测试一个字符由两个字节还是由四个字节组成的最简单方法。

function is32Bit(c) {
  return c.codePointAt(0) > 0xFFFF;
}

is32Bit("??") // true
is32Bit("a") // false

includes

返回布尔值,表示是否找到了参数字符串。

var str = ‘Hello world!‘;
var newstr=str.includes(‘Hello‘)
console.log(newstr)//true

第二个参数,表示开始搜索的位置。

var str = ‘Hello world!‘;
var newstr=str.includes(‘Hello‘,6)
console.log(newstr)//false
var newstr=str.includes(‘world‘,6)
console.log(newstr)//true

startsWith

返回布尔值,表示参数字符串是否在原字符串的头部。

var str = ‘Hello world!‘;
var newstr=str.startsWith(‘Hello‘)
console.log(newstr)//true

第二个参数,表示开始搜索的位置。

var str = ‘Hello world!‘;
var newstr=str.startsWith(‘Hello‘,6)
console.log(newstr)//false
var newstr=str.startsWith(‘world‘,6)
console.log(newstr)//true

endsWith

返回布尔值,表示参数字符串是否在原字符串的尾部。

var str = ‘Hello world!‘;
var newstr=str.endsWith(‘world!‘)
console.log(newstr)//true

第二个参数,表示前n个字符。

var str = ‘Hello world!‘;
var newstr=str.endsWith(‘world‘,6)
console.log(newstr)//false
var newstr=str.endsWith(‘world‘,11)
console.log(newstr)//true

repeat

返回一个新字符串,表示将原字符串重复n次。

‘x‘.repeat(3) // "xxx"
‘hello‘.repeat(2) // "hellohello"
‘na‘.repeat(0) // ""

参数如果是小数,会被取整。

‘na‘.repeat(2.9) // "nana"

如果repeat的参数是负数或者Infinity,会报错。

‘na‘.repeat(Infinity)
// RangeError
‘na‘.repeat(-1)
// RangeError

0 到-1 之间的小数,取整以后等于-0repeat视同为 0。

‘na‘.repeat(-0.9) // ""

参数NaN等同于 0。

‘na‘.repeat(NaN) // ""

如果repeat的参数是字符串,则会先转换成数字。

‘na‘.repeat(‘na‘) // ""
‘na‘.repeat(‘3‘) // "nanana"

padStart

用于头部补全,padEnd()用于尾部补全。

接受两个参数,第一个参数用来指定字符串的最小长度,第二个参数是用来补全的字符串。

如果原字符串的长度,等于或大于指定的最小长度,则返回原字符串。

‘xxx‘.padStart(2, ‘ab‘) // ‘xxx‘
‘xxx‘.padEnd(2, ‘ab‘) // ‘xxx‘

如果用来补全的字符串与原字符串,两者的长度之和超过了指定的最小长度,则会截去超出位数的补全字符串。

‘abc‘.padStart(10, ‘0123456789‘)
// ‘0123456abc‘

如果省略第二个参数,默认使用空格补全长度。

‘x‘.padStart(4) // ‘   x‘
‘x‘.padEnd(4) // ‘x   ‘

padStart的常见用途是为数值补全指定位数。下面代码生成 10 位的数值字符串。

‘1‘.padStart(10, ‘0‘) // "0000000001"
‘12‘.padStart(10, ‘0‘) // "0000000012"
‘123456‘.padStart(10, ‘0‘) // "0000123456"

String静态方法

fromCharCode

用于从码点返回对应字符,字符串中的每个字符都由单独的数字 Unicode 编码指定。

var str=String.fromCharCode(72,69,76,76,79)
console.log(str) //"HELLO"

fromCodePoint

ES6 提供了String.fromCodePoint方法,可以识别大于0xFFFF的字符,弥补了String.fromCharCode方法的不足

console.log(String.fromCodePoint(0x20BB7))
// "??"

有多个参数,则它们会被合并成一个字符串返回。

console.log(String.fromCodePoint(0x78, 0x1f680, 0x79))
// "x??y"

String.raw

用来充当模板字符串的处理函数,返回一个斜杠都被转义(即斜杠前面再加一个斜杠)的字符串,对应于替换变量后的模板字符串。

String.raw`Hi\n${2+3}!`;
// "Hi\\n5!"

String.raw`Hi\u000A!`;
// ‘Hi\\u000A!‘

如果原字符串的斜杠已经转义,那么String.raw不会做任何处理。

String.raw`Hi\\n`
// "Hi\\n"

String的应用

在 JavaScript 语言之中嵌入其他语言,如Vue中一段返回样式的代码:

 if (this.borderHeavy) {
     return `${bor} 2px ${solid} ${this.borderColor}`;
  } else {
      return `${bor} 1px ${solid} ${this.borderColor}`;
   }

以上是关于String的简介的主要内容,如果未能解决你的问题,请参考以下文章

Android 逆向Linux 文件权限 ( Linux 权限简介 | 系统权限 | 用户权限 | 匿名用户权限 | 读 | 写 | 执行 | 更改组 | 更改用户 | 粘滞 )(代码片段

如何将代码片段存储在 mongodb 中?

SpringCloud系列十一:SpringCloudStream(SpringCloudStream 简介创建消息生产者创建消息消费者自定义消息通道分组与持久化设置 RoutingKey)(代码片段

如何理解这段代码片段中的两对括号?

C#-WebForm-★内置对象简介★Request-获取请求对象Response相应请求对象Session全局变量(私有)Cookie全局变量(私有)Application全局公共变量Vi(代码片段

Failed to convert property value of type ‘java.lang.String‘ to required type ‘int‘ for property(代码片段