如何在 Rhino js 中比较不区分大小写的两个字符串
How to compare two strings case insensitive in Rhino js
我打算检查一个字符串是否是另一个字符串的子字符串。但是,不区分大小写的匹配是不可能的,因为 Rhino 1.7.13 不支持 toLowerCase() 和 toUpperCase() 方法。
var stored_string="{{SSHA1}9BC34549D565D9505B287DE0CD20AC77BE1D3F2C"
var str = "9bc34549d565d9505b287de0cd20ac77be1d3f2c"
我正在使用 indexOf 方法来检查子字符串。
if (stored_string.toString().indexOf(str)===0) {
//do something
}
有什么好的方法可以使这种比较不区分大小写吗?
这是一个应该可以工作的 toLowerCase polyfill。我不确定犀牛的所有限制,但这应该适用于标准 ASCII 字符 a-z 和 A-Z
function toLowerCase(str) {
var output = "";
for (let i = 0; i < str.length; i++) {
if (str.charCodeAt(i) >= 65 && str.charCodeAt(i) <= 90) {
output += String.fromCharCode(str.charCodeAt(i) + 32);
} else {
output += str[i];
}
}
return output;
}
console.log(toLowerCase(prompt("Enter a string")));
所以我们可以在这里使用它:
function toLowerCase(str) {
var output = "";
for (let i = 0; i < str.length; i++) {
if (str.charCodeAt(i) >= 65 && str.charCodeAt(i) <= 90) {
output += String.fromCharCode(str.charCodeAt(i) + 32);
} else {
output += str[i];
}
}
return output;
}
var stored_string="{{SSHA1}9BC34549D565D9505B287DE0CD20AC77BE1D3F2C"
var str = "9bc34549d565d9505b287de0cd20ac77be1d3f2c"
console.log(toLowerCase(stored_string).indexOf(toLowerCase(str)) !== -1 || toLowerCase(str).indexOf(toLowerCase(stored_string)) !== -1);
我打算检查一个字符串是否是另一个字符串的子字符串。但是,不区分大小写的匹配是不可能的,因为 Rhino 1.7.13 不支持 toLowerCase() 和 toUpperCase() 方法。
var stored_string="{{SSHA1}9BC34549D565D9505B287DE0CD20AC77BE1D3F2C"
var str = "9bc34549d565d9505b287de0cd20ac77be1d3f2c"
我正在使用 indexOf 方法来检查子字符串。
if (stored_string.toString().indexOf(str)===0) {
//do something
}
有什么好的方法可以使这种比较不区分大小写吗?
这是一个应该可以工作的 toLowerCase polyfill。我不确定犀牛的所有限制,但这应该适用于标准 ASCII 字符 a-z 和 A-Z
function toLowerCase(str) {
var output = "";
for (let i = 0; i < str.length; i++) {
if (str.charCodeAt(i) >= 65 && str.charCodeAt(i) <= 90) {
output += String.fromCharCode(str.charCodeAt(i) + 32);
} else {
output += str[i];
}
}
return output;
}
console.log(toLowerCase(prompt("Enter a string")));
所以我们可以在这里使用它:
function toLowerCase(str) {
var output = "";
for (let i = 0; i < str.length; i++) {
if (str.charCodeAt(i) >= 65 && str.charCodeAt(i) <= 90) {
output += String.fromCharCode(str.charCodeAt(i) + 32);
} else {
output += str[i];
}
}
return output;
}
var stored_string="{{SSHA1}9BC34549D565D9505B287DE0CD20AC77BE1D3F2C"
var str = "9bc34549d565d9505b287de0cd20ac77be1d3f2c"
console.log(toLowerCase(stored_string).indexOf(toLowerCase(str)) !== -1 || toLowerCase(str).indexOf(toLowerCase(stored_string)) !== -1);