සංස්කරණය කරන්න : මෙම පිළිතුර මුලින් එකතු කරන ලද්දේ මීට වසර 9 කට පෙරය. අද ඔබ විකල්පය localeCompareසමඟ භාවිතා කළ යුතුය sensitivity: 'accent':
function ciEquals(a, b) {
return typeof a === 'string' && typeof b === 'string'
? a.localeCompare(b, undefined, { sensitivity: 'accent' }) === 0
: a === b;
}
console.log("'a' = 'a'?", ciEquals('a', 'a'));
console.log("'AaA' = 'aAa'?", ciEquals('AaA', 'aAa'));
console.log("'a' = 'á'?", ciEquals('a', 'á'));
console.log("'a' = 'b'?", ciEquals('a', 'b'));
ඉහත උච්චාරණ (තුන්වන උදාහරණයේ දී මෙන්) නොමැති නම් එකම මූලික අකුරේ ප්රභේද දෙකක් එකම ලෙස සැලකීමට { sensitivity: 'accent' }කියයි .localeCompare()
විකල්පයක් ලෙස, ඔබට භාවිතා කළ හැකිය { sensitivity: 'base' }, එමඟින් අක්ෂර දෙකක මූලික අක්ෂරය සමාන වන තාක් දුරට සමාන වේ (එබැවින් Aසමාන ලෙස සලකනු ලැබේ á).
තෙවන පරාමිතිය localeCompareIE10 හෝ ඊට අඩු හෝ ඇතැම් ජංගම බ්රව්සර් සඳහා සහය නොදක්වන බව සලකන්න (ඉහත සම්බන්ධ කර ඇති පිටුවේ අනුකූලතා සටහන බලන්න), එබැවින් ඔබට එම බ්රව්සර් සඳහා සහය දැක්වීමට අවශ්ය නම්, ඔබට යම් ආකාරයක පසුබෑමක් අවශ්ය වේ:
function ciEqualsInner(a, b) {
return a.localeCompare(b, undefined, { sensitivity: 'accent' }) === 0;
}
function ciEquals(a, b) {
if (typeof a !== 'string' || typeof b !== 'string') {
return a === b;
}
// v--- feature detection
return ciEqualsInner('A', 'a')
? ciEqualsInner(a, b)
: /* fallback approach here */;
}
මුල් පිළිතුර
ජාවාස්ක්රිප්ට් හි සංවේදී නොවන සංසන්දනයක් කිරීමට හොඳම match()ක්රමය වන්නේ iධජය සමඟ RegExp ක්රමය භාවිතා කිරීමයි .
සිද්ධි සංවේදී නොවන සෙවීම
නූල් දෙකම සංසන්දනය කරන විට විචල්යයන් (නියතයන් නොවේ), එය තව ටිකක් සංකීර්ණ 'හේතුවකි, ඔබට නූලෙන් RegExp උත්පාදනය කිරීමට අවශ්ය නමුත් නූල RegExp ඉදිකිරීම්කරු වෙත යැවීමෙන් වැරදි ගැලපීම් හෝ අසාර්ථක ගැලපීම් සිදුවිය හැකිය. එහි අක්ෂර.
ඔබ ජාත්යන්තරකරණය ගැන සැලකිලිමත් නම් පාවිච්චි කරන්න එපා toLowerCase()හෝ toUpperCase()එය සියලු භාෂා නිවැරදි නඩුව-අසංවේදී සැසඳීම් ලබා දෙන්නේ නැත ලෙස.
http://www.i18nguy.com/unicode/turkish-i18n.html
.localeCompare()ජාවාස්ක්රිප්ට් ක්රමය බලන්න. ලිවීමේදී (IE11 +) නවීන බ්රව්සර් මඟින් පමණක් සහාය දක්වයි. බලන්න developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/...