检查javascript中的一堆空白以防止发送空白数据,并修剪中间空间

Checking for bunch of whitespaces in javascript to prevent blank data being sent and trimming the intermediate spaces

本文关键字:空白 数据 空间 中间 修剪 javascript 一堆 检查      更新时间:2023-09-26

我对如何解决这个问题有点困惑。看起来很标准,经常发生,但找不到任何有价值的东西。我有一个HTML文本区域和一个用于输入的文本框。我想验证以下内容:

  1. 用户不应该被允许在文本区域中输入一堆空白,因此,如果15个字符是最小的16个空白字符,则不应计入有效数据。简单的字符计数无法检测到这一点
  2. 可以输入16个空格和一个字母,但这仍然是无效数据!无论如何,在这里检查有效性(根据以下要点,它基本上应该算作2个字符(
  3. 修剪不必要的空格-也就是说,如果有人输入一个字符/单词,然后再输入10个空格,然后是一个字符和另一组空格,我希望它们被修剪为一个空格。就像你在SO上输入答案/新问题一样。如果你输入了一堆空格,它会自动修剪它。我试着四处搜索,但没有找到特定的空格

直观地说,如果我能让#3的解决方案发挥作用,我想它可以自动将其输入到字符计数器函数中,这将是有效的,对吗?

有什么想法吗?jQuery或javascript都可以接受:(

您可以通过正则表达式(示例(用一个空间替换所有出现的多个空间:

var text = "a     b     c";
text = text.replace(/  +/g, ' ');
alert(text); // "a b c"

这是通过在全局范围内查找一个后面跟着一个或多个空间的空间,并用一个空间替换它们来实现的。

请注意,该正则表达式是特定于空间的。它不处理其他形式的空白。如果你想用一个空格替换所有出现的两个或多个空白字符,你可以这样做:

var text = "a 't'r'n b 't'r'n c";
text = text.replace(/'s's+/g, ' ');
alert(text); // "a b c"

它使用's(空白(字符类。请注意,大多数实现都能很好地正确应用's,但其中一些错误与Unicode定义的一些更深奥的空白字符有关,尽管规范明确表示也应该处理它们。(你可以在这里了解你喜欢的浏览器是如何工作的,或者在这里阅读更多关于这个问题的信息。(这是非常不可能的你会喜欢你描述的用例,你可能不必担心。