如何使后缀函数不区分大小写
How do I make suffix function case-insensitive?
我想使以下代码不区分大小写。如果我用测试
isSuffix("Albatross", "Ross")
它返回false,但如果我尝试
isSuffix("Albatross", "ross")
它返回true。
如何使其不区分大小写?
function isSuffix(str, suffix) {
if (str.substring(str.length - suffix.length) == suffix) {
return true;
return false;
}
将您的代码更改为这个(使用.toLowerCase()
function isSuffix(str, suffix) {
return (str.substring(str.length - suffix.length).toLowerCase() == suffix.toLowerCase());
}
您可以使用正则表达式执行此操作:
function isSuffix(str, suffix) {
var regSuffix = new RegExp(suffix + '$', 'i');
if ( regSuffix.test(str) ) {
return true;
}
return false;
}
只需使用toLowerCase
函数。
function isSuffix(str, suffix) {
str = str.toLowerCase();
if (str.substring(str.length - suffix.length) == suffix.toLowerCase()) {
return true;
}
return false;
}
您可以使用String.toLowerCase()
function isSuffix(str, suffix) {
if (str.substring(str.length - suffix.length).toLowerCase() == suffix.toLowerCase())
return true;
return false;
}
alert(isSuffix("Albatross", "Ross"))
您也可以使用正则表达式,但这更接近于您的原始代码。
除非您可以使用与"i"不区分大小写的正则表达式匹配(当后缀只是文本或转义成本时),否则在搜索之前必须先将字符串转换为小写。根据您的操作,如果您需要执行大量搜索,每次将其中一个或两个转换为小写可能会提供更好的性能。
创建新字符串来简单地检查后缀是否匹配也可能是浪费。对于古代浏览器,您可以在使用toLowerCase
将字符串转换为小写后使用lastIndexOf
。
对于更现代的JavaScript代码(当前版本的浏览器/NodeJS),请使用endsWith(链接还包括polyfill):
function isSuffix(str, suffix) {
return (str.toLowerCase().endsWith(suffix.toLowerCase());
}
相关文章:
- JavaScript Regex(?i)选项中字符串大小写不敏感的部分不起作用
- 如何使后缀函数不区分大小写
- 使搜索不区分大小写
- Regex:匹配以“AM”结尾的单词(不区分大小写比较)
- 如何使用jQuery进行不区分大小写的搜索
- 日食添加文件而不将其复制到工作区中
- 正则表达式匹配整个字符串,但大小写不敏感
- 拖放区中可拖动的 Jqueryui 不会滚动,会恢复,滚动条存在
- 将字符串添加到不区分大小写的 RegExp 中替换的事物开始
- 存储区不在网格面板内部加载-ExtJS
- javascript从字符串创建不区分大小写的regex
- :包含不区分大小写的解决方案在替换文本以突出显示时不起作用
- 当涉及到if语句时,我如何使Javascript不区分大小写
- 使用简单的角度滤波器来替换输入字符串中某些字符串的所有出现,而不考虑大小写和空格
- Regex以匹配整数或单词“”;“其他”;,不区分大小写
- Javascript中不区分大小写的自动完成
- 使.search()对变量不区分大小写
- 如果一个值在一个数组中,如果大小写不在't匹配,请将其替换为新值
- JSON Jquery大小写不敏感匹配
- 简单的大小写不敏感的搜索框的一个表与jQuery