JS——字符串
常规操作:
- 可以使用单引号或多引号来表示字符串。
var answer = "It's good to see you again!";
var carname = "Porsche 911";
var carname = 'Porsche 911';
- Back-Tics语法
模板字面量使用反引号(``)而不是引号(“”)来定义字符串,这样可以在字符串中同时使用单引号和双引号。
let text = `He's often called "Johnny"`;
同时支持多行字符串
let text =
`The quick
brown fox
jumps over
the lazy dog`;
- 使用\转义字符串中的引号。
var x = "中国是瓷器的故乡,因此 china 与\"China(中国)\"同名。"
- 对长字符串换行的最安全做法(但是有点慢)是使用字符串加法:
document.getElementById("demo").innerHTML = "Hello" +
"Kitty!";
- 字符串中插入变量:
使用${变量名称}将变量值插入到字符串中,同时允许增加表达式。
let firstName = "Bill";
let lastName = "Gates";
let text = `Welcome ${firstName}, ${lastName}!`;
let price = 10;
let VAT = 0.25;
let total = `Total: ${(price * (1 + VAT)).toFixed(2)}`;
- 创建方法:
请不要把字符串创建为对象,它会拖慢执行速度。new关键字使代码复杂化,也可能产生一些意想不到的结果。
//字面方式创建
var x = "Bill";
//关键词new定义为对象
var y = new String("Bill");
// typeof x 将返回 string
// typeof y 将返回 object
var x = "Bill";
var y = new String("Bill");
// (x === y) 为 false,因为 x 和 y 的类型不同(字符串与对象)
因为创建的是对象,所以无法进行比较。
var x = new String("Bill");
var y = new String("Bill");
// (x == y) 为 false,因为 x 和 y 是不同的对象
属性:
-
length(计算长度)
可返回字符串的长度。
var txt = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
var sln = txt.length;
方法:
-
indexOf(查找首次出现文本)
-
- 返回字符串中指定文本首次出现的索引(位置);
- 从0开始计算位置
- 未找到文本返回-1
- 无法设置正则表达式
var str = "The full name of China is the People's Republic of China.";
var pos = str.indexOf("China");
var str = "The full name of China is the People's Republic of China.";
var pos = str.indexOf("China", 18);
//表示18位置以后开始检索。
-
lastIndexOf(查找最后出现文本)
-
- 和indexOf一样
var str = "The full name of China is the People's Republic of China.";
var pos = str.lastIndexOf("China");
-
search(查找文本可使用正则)
var str = "The full name of China is the People's Republic of China.";
var pos = str.search("locate");
-
索引提取
-
slice(索引提取)
- 提取字符串中某个部分并在新字符串中返回呗提取的部分。
- 两个参数,一个开始索引,一个结束索引。
- 如果某个参数为负,则从字符串的结果开始计数。
- 如果省略第二个参数,则该方法将剪切字符串的剩余部分。
- 负值位置不适用internetExplorer8及更早版本
var str = "Apple, Banana, Mango";
var res = str.slice(7,13);
var str = "Apple, Banana, Mango";
var res = str.slice(-13,-7);
var res = str.slice(7);
-
substring(索引提取)
- 不接受负值索引。其他和slice一样。
-
substr(索引提取)
- 不同之处在于第二个参数规定呗提取部分的长度。而不是结尾
- 第二个参数不能为负数
- 其他和slice相同
var str = "Apple, Banana, Mango";
var res = str.substr(7,6);
-
replace(替换)
- 不会改变原有字符串,而是返回一个新的字符串
- 默认只替换首个匹配,需要全局所搜,使用/g.
- 默认对大小写敏感,如需执行大小写不敏感的替换,使用正则的/i,写正则时不带引号。
str = "Please visit Microsoft!";
var n = str.replace("Microsoft", "W3School");
str = "Please visit Microsoft and Microsoft!";
var n = str.replace(/Microsoft/g, "W3School");
str = "Please visit Microsoft!";
var n = str.replace(/MICROSOFT/i, "W3School");
方法 | 描述 |
---|---|
anchor() | 创建 HTML 锚。 |
big() | 用大号字体显示字符串。 |
blink() | 显示闪动字符串。 |
bold() | 使用粗体显示字符串。 |
charAt() | 返回在指定位置的字符。 |
charCodeAt() | 返回在指定的位置的字符的 Unicode 编码。 |
concat() | 连接字符串。 |
fixed() | 以打字机文本显示字符串。 |
fontcolor() | 使用指定的颜色来显示字符串。 |
fontsize() | 使用指定的尺寸来显示字符串。 |
fromCharCode() | 从字符编码创建一个字符串。 |
indexOf() | 检索字符串。 |
italics() | 使用斜体显示字符串。 |
lastIndexOf() | 从后向前搜索字符串。 |
link() | 将字符串显示为链接。 |
localeCompare() | 用本地特定的顺序来比较两个字符串。 |
match() | 找到一个或多个正则表达式的匹配。 |
replace() | 替换与正则表达式匹配的子串。 |
search() | 检索与正则表达式相匹配的值。 |
slice() | 提取字符串的片断,并在新的字符串中返回被提取的部分。 |
small() | 使用小字号来显示字符串。 |
split() | 把字符串分割为字符串数组。 |
strike() | 使用删除线来显示字符串。 |
sub() | 把字符串显示为下标。 |
substr() | 从起始索引号提取字符串中指定数目的字符。 |
substring() | 提取字符串中两个指定的索引号之间的字符。 |
sup() | 把字符串显示为上标。 |
toLocaleLowerCase() | 把字符串转换为小写。 |
toLocaleUpperCase() | 把字符串转换为大写。 |
toLowerCase() | 把字符串转换为小写。 |
toUpperCase() | 把字符串转换为大写。 |
toSource() | 代表对象的源代码。 |
toString() | 返回字符串。 |
valueOf() | 返回某个字符串对象的原始值。 |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)