Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/405.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 最多允许3个连续的WhitePaae字符_Javascript_Trim - Fatal编程技术网

Javascript 最多允许3个连续的WhitePaae字符

Javascript 最多允许3个连续的WhitePaae字符,javascript,trim,Javascript,Trim,我将使用textarea从用户那里获取一些信息。但他不能连续键入3个空格字符,所以我输入了这个代码:D function trim(myString) { str = myString; str = str.replace(/\s/g, " "); alert(str.lastIndexOf(" ")); if (str.lastIndexOf(" ")>-1) { alert("At most 3 consecutive white Space is allowed

我将使用textarea从用户那里获取一些信息。但他不能连续键入3个空格字符,所以我输入了这个代码:D

function trim(myString)
{
 str = myString;
 str = str.replace(/\s/g, " ");
 alert(str.lastIndexOf("   "));
 if (str.lastIndexOf("   ")>-1)
 {
  alert("At most 3 consecutive white Space is allowed !");
  return false;
 }
 return myString.replace(/^[\s]+/,'').replace(/[\s]+$/,'').replace(/[\s]{2,}/,' ');
}
但是它不起作用,你能帮我改正错误吗

上面的代码首先用空格替换所有类型的白色字符,然后搜索3个连续的空格,如果找到,则显示警报


您还可以查看

试用此简化版:

 function trim(str)
 {
      if (str.match(/\s\s\s+/))
      {
           alert("At most 3 consecutive white Space is allowed !");
           return false;
      }
     return str.replace(/\s\s\s+/g,' ');
 }

请尝试使用此替代的简化版本:

 function trim(str)
 {
      if (str.match(/\s\s\s+/))
      {
           alert("At most 3 consecutive white Space is allowed !");
           return false;
      }
     return str.replace(/\s\s\s+/g,' ');
 }

我认为您应该重新考虑您的设计-对于某些参数值,使用
trim
方法返回
false
,对于其他参数值返回字符串,这有点令人困惑。删除任何“不允许”的空白字符怎么样?然后您的方法可以重写为:

function trim(myString) {
    return myString.replace(/^\s+/,'').replace(/\s+$/,'').replace(/\s{3,}/,'   ');
}
首先,删除前导和尾随空格,然后用3个空格替换3个或更多空格字符的所有序列。例如:

var str = ' a    b   c  d e      ';
trim(str); // Returns 'a   b   c  d e'
注:,功能可进一步简化:

function trim(myString) {
    return myString.trim().replace(/\s{3,}/,'   ');
}

我认为您应该重新考虑您的设计-对于某些参数值,使用
trim
方法返回
false
,对于其他参数值返回字符串,这有点令人困惑。删除任何“不允许”的空白字符怎么样?然后您的方法可以重写为:

function trim(myString) {
    return myString.replace(/^\s+/,'').replace(/\s+$/,'').replace(/\s{3,}/,'   ');
}
首先,删除前导和尾随空格,然后用3个空格替换3个或更多空格字符的所有序列。例如:

var str = ' a    b   c  d e      ';
trim(str); // Returns 'a   b   c  d e'
注:,功能可进一步简化:

function trim(myString) {
    return myString.trim().replace(/\s{3,}/,'   ');
}

什么不起作用?发生了什么事?你对这段代码到底有什么问题?它没有按它应该做的方式工作,它总是说最多……:xDo您只想提醒用户,还是同时提醒和删除长度超过3的空白序列?您有点不一致;您说最多允许3个空格,但如果字符串正好包含3个空格(应该允许),您会提醒用户。什么不起作用?发生了什么事?你对这段代码到底有什么问题?它没有按它应该做的方式工作,它总是说最多……:xDo您只想提醒用户,还是同时提醒和删除长度超过3的空白序列?您有点不一致;您说最多允许3个空格,但如果字符串正好包含3个空格(应该允许),您会提醒用户。这会将3+空格字符替换为1,这意味着“a b”(3个空格)变为“a b”(1个空格)。请注意,这只会检查三个空格的首次出现,用户输入可能会多次出现。这将3+个空格字符替换为1,这意味着“a b”(3个空格)将变成“a b”(1个空格)。注意,这只会检查三个空格中的第一个出现,用户输入可能会多次出现。