如何将此修剪函数var trimmed = str.replace(/^\s+|\s+$/g, '') ;
应用于此代码,以便如果文本框包含空格,则会显示消息“不正确”?此外,如果我使用此功能,我可以在文本框中使用“/”,因为文本框可能包含带有“/".
if (moduletext.value == ""){
errmsg.innerHTML = "Incorrect";
}else{
errmsg.innerHTML = "Correct";
}
答案 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...