我有一个带SHIFT_JIS字符集的ASP Classic页面.页面头部下面的元标记是这样的:
<meta http-equiv="Content-Type" content="text/html; charset=shift_jis">
Run Code Online (Sandbox Code Playgroud)
我的页面有一个文本框(txtName),只允许200个字符.我有一个Javascript函数来验证字符长度,这是在我的提交按钮的onclick()事件上调用的.
if(document.frmPage.txtName.value.length > 200) {
alert("You have exceeded the maximum length of 200.");
return false;
}
Run Code Online (Sandbox Code Playgroud)
问题是,Javascript没有获得SHIFT_JIS中编码的日文字符的正确长度.例如,字符测量的SHIFT_JIS长度为8个字符,但Javascript只将其识别为一个字符,可能是因为默认情况下Javascript使用的Unicode编码.在SHIFT_JIS中,像ケ这样的字符有2或3个字符.
如果我只依赖于Javascript提供的长度,长日文字符将通过页面验证,它将尝试保存在数据库上,然后由于DB列的最大长度为200而失败.
我正在使用的浏览器是Internet Explorer.有没有办法使用Javascript获取日语字符的SHIFT_JIS长度?是否可以使用Javascript从Unicode转换为SHIFT_JIS?怎么样?
谢谢您的帮助!
我的HTML标记的[data-value]属性可以为0、1、2,依此类推。
如果要获取[data-value]不等于0 的元素,该如何编写查询选择器?
我尝试了以下方法,但它们不起作用:
element.querySelectorAll("not[data-value='0']");
element.querySelectorAll("[data-value!='0']");
Run Code Online (Sandbox Code Playgroud) 我的VB.net页面有一个文本框,它接受SQL语句并使用SQL Helper的ExecuteDataSet命令返回一个DataSet.您认为防止删除,截断,删除,插入等语句被执行的最佳方法是什么?文本框应仅接受Select语句.我正在考虑通过Javascript或通过服务器验证来捕获输入字符串,但我确信有更有效的想法来做到这一点.提前致谢.
编辑:我的文本框就像一个查询分析器,因此它接受一行SQL语句,然后根据输入的字符串返回一个数据集
javascript ×2
asp-classic ×1
c# ×1
cjk ×1
database ×1
html ×1
shift-jis ×1
sql ×1
sql-server ×1
unicode ×1
vb.net ×1