我想使以下代码不区分大小写。如果我用
测试它isSuffix("Albatross", "Ross")
它返回false,但如果我尝试
isSuffix("Albatross", "ross")
它返回true。
如何使其不区分大小写?
function isSuffix(str, suffix) {
if (str.substring(str.length - suffix.length) == suffix) {
return true;
return false;
}
答案 0 :(得分:0)
您可以使用正则表达式执行此操作:
function isSuffix(str, suffix) {
var regSuffix = new RegExp(suffix + '$', 'i');
if ( regSuffix.test(str) ) {
return true;
}
return false;
}
答案 1 :(得分:0)
只需使用toLowerCase
功能。
function isSuffix(str, suffix) {
str = str.toLowerCase();
if (str.substring(str.length - suffix.length) == suffix.toLowerCase()) {
return true;
}
return false;
}
答案 2 :(得分:0)
您可以使用String.toLowerCase()
function isSuffix(str, suffix) {
if (str.substring(str.length - suffix.length).toLowerCase() == suffix.toLowerCase())
return true;
return false;
}
alert(isSuffix("Albatross", "Ross"))
您也可以使用正则表达式,但这更接近原始代码。
答案 3 :(得分:0)
将您的代码更改为此(使用.toLowerCase()
function isSuffix(str, suffix) {
return (str.substring(str.length - suffix.length).toLowerCase() == suffix.toLowerCase());
}
答案 4 :(得分:0)
除非您可以使用不区分大小写的regular expression与" i" (当后缀只是文本或转义成本值得)时,你必须先将字符串转换为小写,然后再搜索。根据您的操作,如果您需要执行大量搜索,则将一个或两个转换为小写可能会提供更好的性能。
创建新字符串以简单地检查后缀是否匹配也可能是浪费。对于古代浏览器,您可以在使用lastIndexOf
将字符串转换为小写后使用toLowerCase
。
对于更现代的JavaScript代码(当前版本的browsers / NodeJS),使用endsWith(该链接还包括polyfill):
function isSuffix(str, suffix) {
return (str.toLowerCase().endsWith(suffix.toLowerCase());
}