32 html javascript regex security validation
我有这个正则表达式:
var alphaExp = /^[a-zA-ZåäöÅÄÖ\s]+$/;
Run Code Online (Sandbox Code Playgroud)
这是表单验证中的名称字段.
我需要输入像"Anna-nicole"这样的名字(注意减号).目前,减号会导致错误.
我需要重新制作这个正则表达式,以便在名称中包含减号; 最好是我应该这样做,以便名称也不能以减号开头,或以一个减号结束.只允许在"单词或名称"之间使用减号.
有人知道怎么做这个吗?
顺便说一句,它是JavaScript.
Emi*_*l H 47
你必须使用反斜杠转义减号.
var alphaExp = /^[a-zA-ZåäöÅÄÖ\s\-]+$/;
Run Code Online (Sandbox Code Playgroud)
要阻止他们在开头或结尾使用它,请尝试以下方法:
var alphaExp = /^[a-zA-ZåäöÅÄÖ\s]+[a-zA-ZåäöÅÄÖ\s\-]*[a-zA-ZåäöÅÄÖ\s]+$/;
Run Code Online (Sandbox Code Playgroud)
Jon*_*ler 18
在许多正则表达式方言中,在一个字符类中,一个简单的连字符/减号需要是第一个或最后一个:
/^[-a-zA-ZåäöÅÄÖ\s]+$/
/^[a-zA-ZåäöÅÄÖ\s-]+$/
Run Code Online (Sandbox Code Playgroud)
否定的角色类:
/^[^-a-zA-ZåäöÅÄÖ\s]+$/
/^[^a-zA-ZåäöÅÄÖ\s-]+$/
Run Code Online (Sandbox Code Playgroud)
使用紧密的方括号,将方括号放在前面,连字符放在末尾:
/^[]a-zA-ZåäöÅÄÖ\s-]+$/
Run Code Online (Sandbox Code Playgroud)
如果您需要排除方括号和连字符,则:
/^[^]a-zA-ZåäöÅÄÖ\s-]+$/
Run Code Online (Sandbox Code Playgroud)
对于这个问题,一种解释可能是:你想坚持连字符周围的字母字符,并且只想在开头和结尾允许空格,你可能想要允许使用连字符的撇号,并且你想要避免连续连字符或撇号.
/^\s*[a-zA-ZåäöÅÄÖ]*([a-zA-ZåäöÅÄÖ]+[-'][a-zA-ZåäöÅÄÖ]+)*\s*$/
Run Code Online (Sandbox Code Playgroud)
警告:使用Perl正式测试正则表达式,而不是JavaScript.
字符串的开头,零个或多个空格; 零个或多个字母字符; 零个或多个'一个或多个字母字符加连字符或撇号和一个或多个字母字符'的序列,后跟字符串结尾.您可以在第一个\s*和第二个之后拍一组额外的括号\s*以捕获整个名称.
因为Anna-nicole,第一个alpha术语将匹配Ann,而另一个alpha术语将匹配a-nicole.因为Anonymous,第一个术语将匹配整个字符串,第二个术语将为空.因为O'Reilly,第一个术语是空的,第二个术语匹配整个字符串.诸如"C-d"和"Who''Me"之类的名称将被拒绝(不允许重复连字符或撇号).它将允许Smith-Jones-and-Son作为名称,和Smith-And-O'Reilly.它不允许使用前导或尾随连字符或撇号.
如果你想允许'名字姓氏',你需要两个上面正则表达式的'核心' \s+.等等.
| 归档时间: |
|
| 查看次数: |
72724 次 |
| 最近记录: |