小编mar*_* uy的帖子

如何在Javascript中获取日文字符的长度?

我有一个带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?怎么样?

谢谢您的帮助!

javascript unicode cjk asp-classic shift-jis

5
推荐指数
2
解决办法
5352
查看次数

Javascript querySelectorAll数据属性值不等于

我的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)

html javascript css-selectors

3
推荐指数
2
解决办法
1892
查看次数

如何防止文本框上的SQL注入攻击?

我的VB.net页面有一个文本框,它接受SQL语句并使用SQL Helper的ExecuteDataSet命令返回一个DataSet.您认为防止删除,截断,删除,插入等语句被执行的最佳方法是什么?文本框应仅接受Select语句.我正在考虑通过Javascript或通过服务器验证来捕获输入字符串,但我确信有更有效的想法来做到这一点.提前致谢.

编辑:我的文本框就像一个查询分析器,因此它接受一行SQL语句,然后根据输入的字符串返回一个数据集

c# sql database vb.net sql-server

2
推荐指数
1
解决办法
2541
查看次数