Спасибо за подсказки! Кажется, получилось во всех вхождениях тега [math].[/math] корректировать раскладку клавиатуры.
<script type="text/javascript">
function correctInTag(t)
{
for (var z = t.value.split('[math]'), f = 0, j = 1, lj = z.length; j < lj; j++)
{ if (new RegExp('[а-яё]', 'i').exec(z[j].split('[/math]')[0]) != null) {f = 1; break} }
if (!f) return;
var cyr = 'АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЬЫЪЭЮЯабвгдеёжзийклмнопрстуфхцчшщьыъэюя',
klv = 'F<DULT~:PBQRKVYJGHCNEA{WXIOMS}">Zf,dult`;pbqrkvyjghcnea[wxioms]\'.z';
if (document.selection)
{ t.focus();
var rng = document.selection.createRange();
rng.moveEnd('character', -1);
rng.moveEnd('character', 1);
rng.text = klv.charAt(cyr.indexOf(rng.text));
}
else if (t.selectionStart >= 0)
{ var s = t.selectionStart - 1;
t.value = t.value.substr(0, s)
+ klv.charAt(cyr.indexOf(t.value.substr(s, 1)))
+ t.value.substr(s + 1);
t.selectionStart = t.selectionEnd = s + 1;
}
}
</script>
<textarea id="abcd" onkeyup="correctInTag(this)" style="width: 300px; height: 100px">
Наберите что-либо на русском внутри [math].[/math].
И в этом [math].[/math].
</textarea>