如何使后缀功能不区分大小写?

时间:2016-05-11 01:47:17

标签: javascript string

我想使以下代码不区分大小写。如果我用

测试它
isSuffix("Albatross", "Ross")

它返回false,但如果我尝试

isSuffix("Albatross", "ross")

它返回true。

如何使其不区分大小写?

function isSuffix(str, suffix) {
  if (str.substring(str.length - suffix.length) == suffix) {
    return true;

  return false;
}

5 个答案:

答案 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());
}