Вот некоторый код jQuery, который удаляет двойные запятые и двойные точки в набранном виде:
HTML:
<textarea class="autoCorrect" rows="5" cols="40">Some initial text</textarea>
Javascript:
$(".autoCorrect").keypress(function() {
var obj = this;
setTimeout(function() {
var text = obj.value;
var selStart = obj.selectionStart;
var newText = text.replace(/,{2,}|\.{2,}/, function(match, index) {
if (index < selStart) {
selStart -= (match.length - 1); // correct the selection location
}
return(match.substr(0,1));
});
if (newText != text) {
obj.value = newText;
obj.selectionStart = obj.selectionEnd = selStart;
}
}, 1);
})
Вы можете увидеть это в действии здесь: http://jsfiddle.net/jfriend00/XbZrS/.
Должно быть очевидно, как вы расширяете его на другие двойные символы, просто добавляя их в регулярное выражение. Если вы хотите перехватывать другие события, которые могут изменить текст, такие как вырезание, вставка и перетаскивание, вам придется также подключить эту логику к этим другим событиям.