正则表达式仅匹配字符或空格或两个单词之间的一个点,不允许双倍空格

use*_*547 6 javascript regex

我需要正则表达式的帮助.我需要JavaScript中的表达式,它只允许字符或空格或两个单词之间的一个点,不允许双倍空格.

我正在使用这个

var regexp = /^([a-zA-Z]+\s)*[a-zA-Z]+$/;
Run Code Online (Sandbox Code Playgroud)

但它不起作用.

1.  hello space .hello - not allowed
2.  space hello space - not allowed
Run Code Online (Sandbox Code Playgroud)

Sub*_*ger 5

尝试这个:

^(\s?\.?[a-zA-Z]+)+$
Run Code Online (Sandbox Code Playgroud)

编辑1

/^(\s{0,1}\.{0,1}[a-zA-Z]+)+$/.test('space ..hello space')
false
/^(\s{0,1}\.{0,1}[a-zA-Z]+)+$/.test('space .hello space')
true
Run Code Online (Sandbox Code Playgroud)

v2:

/^(\s?\.?[a-zA-Z]+)+$/.test('space .hello space')
true
/^(\s?\.?[a-zA-Z]+)+$/.test('space ..hello space')
false
Run Code Online (Sandbox Code Playgroud)

v3:如果您需要一些this,例如一个空格或点之间

/^([\s\.]?[a-zA-Z]+)+$/.test('space hello space')
true
/^([\s\.]?[a-zA-Z]+)+$/.test('space.hello space')
true
/^([\s\.]?[a-zA-Z]+)+$/.test('space .hello space')
false
Run Code Online (Sandbox Code Playgroud)

v4:

/^([ \.]?[a-zA-Z]+)+$/.test('space hello space')
true
/^([ \.]?[a-zA-Z]+)+$/.test('space.hello space')
true
/^([ \.]?[a-zA-Z]+)+$/.test('space .hello space')
false
/^([ ]?\.?[a-zA-Z]+)+$/.test('space .hello space')
true
Run Code Online (Sandbox Code Playgroud)

EDIT2 说明:

可能是\ s = [\ r \ n \ t \ f]中的问题,因此,如果仅允许空间- \s?可以替换为[ ]?

http://regex101.com/r/wV4yY5