正则表达单个空格

时间:2012-08-01 19:48:37

标签: regex string expression whitespace

我正在尝试使用正则表达式来验证此模式:

  

这是一篇文章   [TEXT] [SINGLE SPACE] [TEXT] [SINGLE SPACE] [TEXT] [SINGLE SPACE] [TEXT]   个人姓名
  威廉史密斯   [TEXT] [SINGLE SPACE] [TEXT]
  另一个文字   [TEXT] [SINGLE SPACE] [TEXT] [SINGLE SPACE]

该模式将包含下一个规则:

  • 不是从任何空间开始
  • 字符串只能包含单词之间的单个空格或字符串末尾的单个空格

我有这个正则表达式

  

/ ^ [[A-ZA-Z0-9] + \ S?[A-ZA-Z0-9] *] {0,10} $ /

但我不知道如何重复这个模式并将其设为10长

**编辑**

为了更容易理解,我正在开发一个jQuery插件,它将一个keypress事件绑定到一个输入文本元素,然后添加一个表达式来验证每个按下文本的键,就像一个蒙面文本框,所以要应用掩码的规则,只接受字母数字字符和单词之间的空格我需要表达式验证每个按下的键是这样的

Ť



这个我 这是
这是
这是一个 这是一个 这是一个 这是一个 这是一个特色 这是一个文本

2 个答案:

答案 0 :(得分:2)

好吧,好吧,我我已经正确理解了这些要求。

首先,这匹配一个单词后跟一个空格:

/[a-zA-Z01-9]+ /

然后我们需要重复10次,对吗?从头开始?

/^([a-zA-Z01-9]+ ){10}/

但尾随空格是可选的,是吗?

/^([a-zA-Z01-9]+ ){9}[a-zA-Z01-9]+ ?$/

此外,最好使用\w而不是[a-zA-Z01-9] 1 并且\s会匹配任何空格,这可能比匹配更好只有空格。

如果你的意思是最多 10次,那应该是{0,9}而不是{9}

1 \w会匹配下划线,以及各种国际字母,而原始模式则不会。不确定这是否是故意的,所以我没有使用它,但如果它不是故意的,那么\w是更好的选择。

答案 1 :(得分:1)

使用groups(使用())代替character class分隔符([])将表达式repeated分组最多十次:

^\w+(\s\w+){0,9}\s?$