如何在文本框中使用此修剪功能

时间:2011-11-19 02:18:13

标签: javascript regex string textbox trim

如何将此修剪函数var trimmed = str.replace(/^\s+|\s+$/g, '') ;应用于此代码,以便如果文本框包含空格,则会显示消息“不正确”?此外,如果我使用此功能,我可以在文本框中使用“/”,因为文本框可能包含带有“/".

的数据
  if (moduletext.value == ""){
      errmsg.innerHTML = "Incorrect";
    }else{
            errmsg.innerHTML = "Correct"; 
    }  

4 个答案:

答案 0 :(得分:2)

执行您要执行的操作的最简单方法是检查修剪后的值的长度。

var trimmed = moduletext.value.replace(/^\s+/, '').replace(/\s+$/, '');
if(!trimmed.length) {
  errmsg.innerHTML = 'Incorrect';
} else {
  errmsg.innerHTML = 'Correct';
}

如果你知道你正在使用什么浏览器(通常不是< IE9),你可以使用trim的本机浏览器实现,即'my string'.trim();

答案 1 :(得分:0)

使用replace()更简单的表达式而不是match()。正则表达式/\s/将匹配文本框中的任何空格,并生成Incoorect消息。

if (moduletext.match(/\s/)){
  errmsg.innerHTML = "Incorrect";
}else{
  errmsg.innerHTML = "Correct"; 
}  

您可以在文本框中添加/。正则表达式中的那些/是分隔符,而不是表达式的实际组件。

答案 2 :(得分:0)

您似乎需要左右修剪的字符串,以及为用户更新状态字段的方法。您可能会对此感兴趣:

<html>
    <head>
    <script>
            //option 1: just determine if the string is valid
            string_valid = function (str) {

                validity_indicator = {
                    true:"Valid",
                    false:"InValid",
                };

                return validity_indicator[str.match( /\s*([^\s](:?.*[^\s])?)\s*/ ) != null];
            };

            // option 2: the trim and validation sort of wrapped up in one.
            parse_for_validity = function (str) {
                if ( ( result = /\s*([^\s](:?.*[^\s])?)\s*/.exec( str ) ) == null ) { 
                    return 'Incorrect';
                }
                return result[ 1 ];
            };

            // then either
            // errmsg.innerHTML = string_valid( your_string_here )

        </script>
    </head>
    <body>
        <!-- and then test them out -->
        <script> 
            alert( string_valid("    ") );       // => 'Incorrect'
            alert( string_valid(" abc ") );      // => 'Correct'
            alert( parse_for_validity("    ") ); // => 'Incorrect'
            alert( '...' + parse_for_validity(" abc ") + '...' ); // => '...abc...'
        </script>
    </body>
</html> 

关于/,我相信当你在正则表达式中使用它时,你只需要关心它。在您正在测试的字符串中使用/是可以的。如果您要在正则表达式中测试/,则应该能够像\/一样对其进行转义,如下面的表达式所示:/\//

我希望这会有所帮助。我喜欢正则表达式! :)

答案 3 :(得分:0)

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

calling : trim(document.getElementById('username').value);


used for removing all kinds of spacing...