如何使用Javascript(而不是jQuery)提取textarea中的每个字符

时间:2013-12-21 13:17:39

标签: javascript asp-classic

我有一个直接的经典ASP页面,用户可以输入任何标准键盘键和Enter键(如果他们愿意,甚至可以输入特殊的ALT nnn值)

当前的HTML代码如下:

Enter your message - Characters left  
<input type="text" name="chl" value="<%=Cclen%>" size=3 diabled readonly>
<br />
<textarea id="SMSmsg" name="SMSmessage" MAXLENGTH="600" rows=5 cols=35 onKeyUp="textCounter(this)"></textarea>

JavaScript函数 testcounter 目前使用 indexOf(“\ n”),每次释放一个键时,它会遍历整个 textarea 。我还需要确定是否已输入其他特殊字符,因为他们在发送短信时可以使用2个字符

总之,任何人都可以建议一些JS代码,让我确定用户输入的每个字符(最好把它变成ascii值),这样我就可以准确计算出字数并将其显示给用户它超过 160限制,但我也可以在发送短信时处理306个字符和最多457个字符

也许 MATCH 功能可能就行了,因为它只需检查整个字符串一次,但任何其他建议非常感谢

如果有人需要JS代码,请提前致谢并道歉

2 个答案:

答案 0 :(得分:2)

听起来你想听 keypress 事件,然后当你让用户粘贴到<textarea>时会发生什么?此外, JavaScript 不允许您选择字符编码并执行 UTF-16 中的所有操作,而不是 ASCII

如果您想计算字节数,那么最佳解决方案实际上可能是转换为 Blob 并采用尺寸

function getByteLength(str_data) {
    var b = new Blob([str_data]);
    return b.size;
}

getByteLength('a\u2020b'); // 5

答案 1 :(得分:0)

var arrayOfCharacters = document.getElementById('SMSmsg').value.split('');
var numberOfCharacters = arrayOfCharacters.length;