我需要正则表达式的帮助.我需要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)
尝试这个:
^(\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?可以替换为[ ]?
| 归档时间: |
|
| 查看次数: |
9343 次 |
| 最近记录: |