我需要的验证如下
A-Z, a-z, 0-9
,没有尾随/前导空格,-._
只有一次非尾随/领先
直到现在我有以下内容:
<input type="text" pattern="^\S[a-zA-Z0-9]*\S$">
这会处理前导空格和A-Z,a-z,0-9,但它至少需要2个字符
然后我想到了符号-._
<input type="text" pattern="^\S[a-zA-Z0-9]*[\-_+]{,1}\S$">
但那里没有运气。有什么想法吗?
答案 0 :(得分:3)
由于pattern
属性使用与JavaScript相同的语法,因此您可以使用以下正则表达式:
<input type="text" pattern="^(?=..)[a-zA-Z0-9]*([_.-][a-zA-Z0-9]*)?$">
您可以通过输入内容来测试上面的代码段,然后从输入中更改焦点。
a-zA-Z0-9
一次输入最多只能包含_.-
和 。前面(?=..)
中的前瞻检查至少有2个字符。