【发布时间】:2008-12-05 07:21:17
【问题描述】:
我正在为CustomValidator 编写一个客户端验证函数,我需要检查输入字符串的长度。但在此之前,为了稍微抵消作弊者,我想从字符串中删除所有前导和尾随空格。在这种情况下,最简单的方法是什么?
谢谢!
【问题讨论】:
标签: asp.net javascript validation client-side
我正在为CustomValidator 编写一个客户端验证函数,我需要检查输入字符串的长度。但在此之前,为了稍微抵消作弊者,我想从字符串中删除所有前导和尾随空格。在这种情况下,最简单的方法是什么?
谢谢!
【问题讨论】:
标签: asp.net javascript validation client-side
最简单的方法是在您的页面上调用 ValidatorTrim(value) javascript 函数。这个函数来自每个 asp.net 验证器在添加到页面时包含的 javascript。
但我不认为它是一个文档化的特性,所以你不能依赖它在验证器的未来版本中可用。所以我会通过 jQuery,或者像 J Cooper 指出的那样添加你自己的函数。
【讨论】:
请原谅我的迟钝,但您只是在 Javascript 中寻找 trim 函数吗?如果是这样,这是 jQuery 使用的:
function trim( text ) {
return (text || "").replace( /^\s+|\s+$/g, "" );
}
【讨论】:
不得不说我问的问题很容易用谷歌搜索,我已经调查过了。但是我想为 StackOverflow 社区贡献一个解决方案,如果您正在为 ASP.NET 页面编写客户端验证功能,这是最简单的解决方案。
众所周知,RequiredFieldValidator 还会修剪要检查的字符串的空格。如果您查看与您的应用程序关联的 ScriptResource.axd 文件的源代码,您可以找到这个
function RequiredFieldValidatorEvaluateIsValid(val) {
return (ValidatorTrim(ValidatorGetValue(val.controltovalidate)) !=
ValidatorTrim(val.initialvalue))
}
还有更有趣的
function ValidatorTrim(s) {
var m = s.match(/^\s*(\S+(\s+\S+)*)\s*$/);
return (m == null) ? "" : m[1];
}
代码片段。
所以,你不应该从头开始重写修剪功能,你已经拥有它并且可以使用它。
【讨论】: