在 JavaScript 中检查字符串是否包特定字符串
在 JavaScript 中有两种常用的方法来检查字符串是否包含子字符串。 更现代的方式是 String#includes()
功能 。
const str = 'Arya Stark';
str.includes('Stark'); // true
str.includes('Snow'); // false
您可以使用 String#includes()
在所有现代浏览 除了 Internet Explorer 中。 你也可以使用 String#includes()
在 Node.js 中 >= 4.0.0
。
兼容性表 Mozilla 开发者网络
如果您需要支持 Internet Explorer,则应改为使用 String#indexOf()
方法 ,自 1997 年 ES1 以来一直是 JavaScript 的一部分。
const str = 'Arya Stark';
str.indexOf('Stark') !== -1; // true
str.indexOf('Snow') !== -1; // false
一般来说,如果您对代码是否会在支持 includes()
,你应该使用 indexOf()
。这 includes()
函数的语法比 indexOf()
。
不区分大小写的搜索
两个都 String#includes()
和 String#indexOf()
区分大小写。 这两个函数都不支持正则表达式。 要进行不区分大小写的搜索,您可以使用正则表达式和 String#match()
函数 ,或者您可以使用 String#toLowerCase()
功能 。
const str = 'arya stark';
// The most concise way to check substrings ignoring case is using
// `String#match()` and a case-insensitive regular expression (the 'i')
str.match(/Stark/i); // true
str.match(/Snow/i); // false
// You can also convert both the string and the search string to lower case.
str.toLowerCase().includes('Stark'.toLowerCase()); // true
str.toLowerCase().indexOf('Stark'.toLowerCase()) !== -1; // true
str.toLowerCase().includes('Snow'.toLowerCase()); // false
str.toLowerCase().indexOf('Snow'.toLowerCase()) !== -1; // false
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论