Поскольку никакой ответ явно не предоставил простой фрагмент кода для использования RegExp
, вот моя попытка:
function compareInsensitive(str1, str2){
return typeof str1 === 'string' &&
typeof str2 === 'string' &&
new RegExp("^" + str1.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&') + "$", "i").test(str2);
}
Он имеет ряд преимуществ:
undefined
, например, вырвал бы выражение, подобное str1.toUpperCase()
). RegExp
. str.gsub('ja', 'jA')
str.gsub(/(?<=j).{1}/) { |char| char.capitalize } #for any char that coming after 'j'
str.gsub(/(?<=j).{1}/) { |char| char == 'a' ? 'A' : char}
делать только для 'a' – kiddorails 13 July 2018 в 12:01a
= & gt;str.gsub(/(?<=j)a{1}/) { |char| char.capitalize }
. Спасибо, я уточню свой ответ. – Leo 13 July 2018 в 12:08{1}
в шаблон – Tom Lord 13 July 2018 в 12:56(?<=j)\p{lower}
может быть более логичным, так как воссоздание числа, пробел или пунктуация или уже написанное письмо, вероятно, не имеет большого смысла. – engineersmnky 13 July 2018 в 12:57