Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/423.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用Javascript(而不是jQuery)提取文本区域中的每个字符_Javascript_Asp Classic - Fatal编程技术网

如何使用Javascript(而不是jQuery)提取文本区域中的每个字符

如何使用Javascript(而不是jQuery)提取文本区域中的每个字符,javascript,asp-classic,Javascript,Asp Classic,我有一个直截了当的经典ASP页面,用户可以在其中输入任何标准键盘键加上enter键(如果他们愿意,甚至可以输入特殊的ALT nnn值) 当前HTML代码如下所示: Enter your message - Characters left &nbsp; <input type="text" name="chl" value="<%=Cclen%>" size=3 diabled readonly> <br /> <textarea id="SMSm

我有一个直截了当的经典ASP页面,用户可以在其中输入任何标准键盘键加上enter键(如果他们愿意,甚至可以输入特殊的ALT nnn值)

当前HTML代码如下所示:

Enter your message - Characters left &nbsp;
<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”),每次释放一个键时,它都会遍历整个文本区域。我还需要确定是否已经输入了其他特殊字符,因为它们在发送短信时可以输入2个字符

总之,有谁能推荐一些JS代码,让我确定用户输入的每个字符(最好将其转换为ascii值)因此,我可以准确地计算出字符数,并在超过160限制时显示给用户,但在发送短信时,我还可以处理306个字符,最多457个字符

也许MATCH函数可以是go,因为它只需检查整个字符串一次,但任何其他建议都非常感谢


如果有人需要JS代码,请提前感谢并致歉。听起来你想听听按键事件,但是,当用户粘贴到
中时会发生什么?此外,JavaScript不允许您选择字符编码,所有操作都使用UTF-16,而不是ASCII

var arrayOfCharacters = document.getElementById('SMSmsg').value.split('');
var numberOfCharacters = arrayOfCharacters.length;
当您想要计算字节数时,实际上最好的解决方案可能是将其转换为Blob并获取大小


“…如果有人需要JS代码,请道歉”是的,发布代码是一项要求。使用
split(“”)
获取请求的单个字符,然后使用
charCodeAt()
获取每个字符的ASCII码value@tewathia不返回ASCII值,但返回Unicode值(在进入代理项之前最多返回
65536
)@PaulS。是的,但是不是每个字符的Unicode值都与ASCII值相同吗?这对查找字节长度没有帮助
function getByteLength(str_data) {
    var b = new Blob([str_data]);
    return b.size;
}

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