假设我在文本区域中输入单词"hello“。在我输入hello之后,如何选择刚刚输入的单词并对其进行修改。例如,在我输入单词hello之后,没有按空格键,就可以识别出单词是hello,并且在单词前后添加<b>和</b>。所以最终的结果是,我知道文本区不接受<b>hello</b>,但为了便于讨论。我能想到的唯一方法是在用户每次按下一个键时运行一个函数,并将文本区域的内容添加到一个数组中,在空格处对其进行中断。但这需要空格,并且必须交叉引用数组将需要时间。有没有什么方法可以轻松做到这一点呢?
发布于 2011-10-25 07:44:13
您可以使用JQuery.keyup函数来监听空格键的按下。
$("textarea").keyup(function(event)
{
var c= String.fromCharCode(event.keyCode);
var isWhiteSpace = c.match(/\s/);
});您也可以使用split和join函数来完成问题后半部分中描述的内容。
编辑:这里有更多关于这个想法的信息:http://jsfiddle.net/ingenu8/ukkwM/
<div class="formatted"></div>
<textarea class="observed"></textarea>和JS:
$(document).ready(function() {
function hasHtml(str)
{
return str.match(/<b>.*?<\/b>/);
}
function formatStr(str)
{
var bits = str.split(/\s+/);
var last = bits.pop();
if(!last.match(/^\s*$/))
{
if(!hasHtml(last))
{
bits.push('<b>'+last+'</b>');
}
}
return bits.join(' ');
}
setInterval(function() {
var str = formatStr($('.observed').val());
$('.formatted').html(str);
}, 1000);
});https://stackoverflow.com/questions/7883141
复制相似问题