[英]How do I make suffix function case-insensitive?
我想让以下代码不区分大小写。 如果我测试它
isSuffix("Albatross", "Ross")
它返回false,但如果我尝试
isSuffix("Albatross", "ross")
它返回真。
我如何使它不区分大小写?
function isSuffix(str, suffix) {
if (str.substring(str.length - suffix.length) == suffix) {
return true;
return false;
}
您可以使用正则表达式执行此操作:
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"))
您也可以使用正则表达式,但这更接近您的原始代码。
将您的代码更改为此(使用.toLowerCase()
function isSuffix(str, suffix) {
return (str.substring(str.length - suffix.length).toLowerCase() == suffix.toLowerCase());
}
除非您可以使用与“i”匹配的不区分大小写的正则表达式(当后缀只是文本或转义成本时),您必须在搜索之前先将字符串转换为小写。 如果您需要执行大量搜索,根据您的操作,将一个或两个都转换为小写可能会提供更好的性能。
创建新字符串来简单地检查后缀是否匹配也可能是浪费。 对于古老的浏览器,您可以在使用toLowerCase
将字符串转换为小写后使用lastIndexOf
。
对于更现代的 JavaScript 代码(当前版本的浏览器/ NodeJS ),请使用endsWith (该链接还包括polyfill ):
function isSuffix(str, suffix) {
return (str.toLowerCase().endsWith(suffix.toLowerCase());
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.