protected function textArea_changingHandler(event:TextOperationEvent):void
{
if (event.operation is PasteOperation)
{
event.preventDefault();
var txt:String = Clipboard.generalClipboard.getData(ClipboardFormats.TEXT_FORMAT).
toString().replace(/[^A-Za-z0-9\s]/ig, "");
var curPos1:Number = textArea.selectionAnchorPosition;
var curPos2:Number = textArea.selectionActivePosition;
if (curPos2 < curPos1)
{
var t:Number = curPos1;
curPos1 = curPos2;
curPos2 = t;
}
if (textArea.text.length > 0)
{
textArea.text = textArea.text.substr(0, curPos1) + txt + textArea.text.substr(curPos2, textArea.
text.length);
}
else
{
textArea.text = txt;
}
textArea.selectRange(curPos1 + txt.length, curPos1 + txt.length);
event.preventDefault();
}
}
Это эффективно заботится обо всех сценариях / операциях, которые могут произойти во время вставки.