我允许这个正则表达式的空格如下:
的javascript:
@Configuration
@Import({MvcConfig.class})
public class AnotherConfig {
....
}
...但我想在开始和结束时不允许它。这很有效:
的javascript:
var re_username = /^[a-zA-Z\040\.\-]+$/;
var is_username = re_username.test($('#chatusername').val());
console.log(is_username);
...但是我需要输入至少3个(< 3个数字返回false,尽管我输入例如A)数字,正则表达式返回true,这会导致添加类和东西的麻烦......
我已经发现了这一点,允许在开头和结尾有空格
的javascript:
var re_username = /^[a-zA-Z]+[a-zA-Z\040\.\-]+[a-zA-Z\.]+$/;
但它允许所有角色......我如何匹配我的目标正则表达式?我试过了......但它已经没有用了......
var re_username = /^\S+(?: \S+)*$/
答案 0 :(得分:1)
使用
var re_username = /^[a-zA-Z.-]+(?:\040+[a-zA-Z.-]+)*$/;
匹配
^
- 字符串开头[a-zA-Z.-]+
- 1+个字母,.
和-
(?:\040+[a-zA-Z.-]+)*
- 0+序列
\040+
- 1 +常规空间[a-zA-Z.-]+
- 1+个字母,.
和-
$
- 字符串结尾请参阅regex demo。
注意:如果您不想允许连续多个空格,请在+
之后移除\040
。
另一种效率较低的方法是通过前瞻:
var re_username = /^(?!\040|.*\040$)[a-zA-Z\040.-]+$/;
^^^^^^^^^^^^^^^
此处,如果在字符串的开头找到空格,或者在字符串末尾的任何0+字符((?!\040|.*\040$)
)之后找到空格,则.*
否定前瞻将使匹配失败({ {1}})。