如何在ClientValidationFunction中修剪字符串

时间:2008-12-05 07:21:18

标签: asp.net javascript validation client-side

我正在为CustomValidator编写客户端验证函数,我需要检查输入字符串的长度。但是之前,为了对抗作弊者,我想从字符串中删除所有前导和尾随空格。在这种情况下,最简单的方法是什么?

谢谢!

3 个答案:

答案 0 :(得分:4)

最简单的方法是在页面上调用ValidatorTrim(value)javascript函数。此函数来自每个asp.net验证器添加到页面时包含的javascript。

但我不认为它是一个记录的功能,所以你不能依赖它在验证器的未来版本中可用。所以我会通过jQuery,或者像J Cooper指出的那样添加你自己的函数。

答案 1 :(得分:2)

请原谅我是愚蠢的,但你只是在Javascript中寻找trim函数吗?如果是这样,这是jQuery使用的:

function trim( text ) {
    return (text || "").replace( /^\s+|\s+$/g, "" );
}

答案 2 :(得分:0)

不得不说我问过的问题很容易用Google搜索,我已经调查过了。但是我想为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];
}

代码片段。

所以,你不应该从头开始重写修剪功能,你已经拥有它并且可以使用它。