javascript 验证带空格的长度
javascript validation for length with spaces
我有一个计算文本区域中字符长度的功能,如下所示:
JSP代码:
<textarea class="textAreaLarge" id="citation" rows="20" cols="180" name="citation" maxlength="<%=maxCitationLength%>" onKeyUp="toCount(<%=maxCitationLength%>);"><%=citation%></textarea>
<strong><div id="sBann" class="minitext"></div></strong>
JS是
function toCount(){
document.getElementById('citation').onkeyup = function () {
document.getElementById('sBann').innerHTML = (characters - this.value.length) + " characters left.";
};
}
例如,这是忽略引号的文本区域的内容。不包括引号,总共 10 个字符。
"test
1111"
java脚本正确执行。假设 MaxLength 是 1500,它表示“还剩 1490 个字符”。
当在 java 端再次进行相同的验证时,这就是代码的作用。
int maxCitationLength = utility.getMaxCitationLength(rec);
String txtCitation = myUtil.checkNull(citationForm.getValue("citation"));
if (txtCitation.length() > maxCitationLength) {
request.setAttribute("error",
"The Citation field cannot be larger than " + maxCitationLength +
" characters.");
}
这两个条件之间总是存在差异。例如,我在文本区域中输入了 1500 个字符,其中包括 spaces,但表格显示还剩 0 个字符并且不允许我输入更多。但是当我提交 servlet 再次进行验证并收到错误消息说字段不能大于 1500 characters.Constant 值是相同的 1500。但是我猜 space 在 java 和 [= 中的计算方式不同28=]脚本。做这个的最好方式是什么?有什么建议吗?
你说得对,Spring MVC 会将 LF = Line Feed, CR = carriage return
转换为 \r \n
。我试图重现我的代码。
因此我的解决方案是我们将这些字符替换为 space
。
使用Java脚本:
someText = someText.replace(/(\n|\r)/g, " ");
与Java:
str = str.replaceAll(/(\n|\r)/g, " ")
我有一个计算文本区域中字符长度的功能,如下所示: JSP代码:
<textarea class="textAreaLarge" id="citation" rows="20" cols="180" name="citation" maxlength="<%=maxCitationLength%>" onKeyUp="toCount(<%=maxCitationLength%>);"><%=citation%></textarea>
<strong><div id="sBann" class="minitext"></div></strong>
JS是
function toCount(){
document.getElementById('citation').onkeyup = function () {
document.getElementById('sBann').innerHTML = (characters - this.value.length) + " characters left.";
};
}
例如,这是忽略引号的文本区域的内容。不包括引号,总共 10 个字符。
"test
1111"
java脚本正确执行。假设 MaxLength 是 1500,它表示“还剩 1490 个字符”。
当在 java 端再次进行相同的验证时,这就是代码的作用。
int maxCitationLength = utility.getMaxCitationLength(rec);
String txtCitation = myUtil.checkNull(citationForm.getValue("citation"));
if (txtCitation.length() > maxCitationLength) {
request.setAttribute("error",
"The Citation field cannot be larger than " + maxCitationLength +
" characters.");
}
这两个条件之间总是存在差异。例如,我在文本区域中输入了 1500 个字符,其中包括 spaces,但表格显示还剩 0 个字符并且不允许我输入更多。但是当我提交 servlet 再次进行验证并收到错误消息说字段不能大于 1500 characters.Constant 值是相同的 1500。但是我猜 space 在 java 和 [= 中的计算方式不同28=]脚本。做这个的最好方式是什么?有什么建议吗?
你说得对,Spring MVC 会将 LF = Line Feed, CR = carriage return
转换为 \r \n
。我试图重现我的代码。
因此我的解决方案是我们将这些字符替换为 space
。
使用Java脚本:
someText = someText.replace(/(\n|\r)/g, " ");
与Java:
str = str.replaceAll(/(\n|\r)/g, " ")