我想允許3個字符的第一個下劃線(_),第2連字符( - )第三點正則表達式只有一次一個特殊字符從允許的特殊字符的Javascript
,但我想提出的條件,只有()。一次只允許一個角色出現,也只有一次。
如
允許用戶名= abc.def,ABC-DEF,abc_def
不允許用戶名= abc.de.f這裏警報(只有一個特殊字符是在允許的用戶名)
不允許用戶名= abc.de -f,abc.de_f,ab-cd_ef
我該怎麼做。
我想允許3個字符的第一個下劃線(_),第2連字符( - )第三點正則表達式只有一次一個特殊字符從允許的特殊字符的Javascript
,但我想提出的條件,只有()。一次只允許一個角色出現,也只有一次。
如
允許用戶名= abc.def,ABC-DEF,abc_def
不允許用戶名= abc.de.f這裏警報(只有一個特殊字符是在允許的用戶名)
不允許用戶名= abc.de -f,abc.de_f,ab-cd_ef
我該怎麼做。
嘗試/^[a-z]*[-._]?[a-z]*$/
var tests = ['abc.def', 'abc-def', 'abc_def', 'abc.de.f','abc.de-f' , 'abc.de_f', 'ab-cd_ef'];
$.each(tests, function(a,b) {
$('body').append('<div>' + b + ' = ' + regIt(b) + '</div>');
});
function regIt(str) {
return /^[a-z]*[-._]?[a-z]*$/.test(str);
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
此正則表達式,直到它到達字符串的結尾將匹配字母。如果它到達一個符號(-
.
或_
),它會將該符號存儲爲組1,並在字符串末尾保持字母或相同符號的匹配。
以下是匹配的例子:
_something
something-something
foo_bar_baz
foo.
這裏AR Ë一些無效的字符串:
my_file.txt
alpha.bravo_charlie
not-working_
OP只想要一個特殊字符。 'foo_bar_baz'不允許,因爲有2個下劃線。 – Toto
@Toto的確,我誤解了。然後br3t的答案是正確的。 –
有許多資源,針對學習正則表達式。自己試一試,當你遇到比「我該怎麼做」更具體的問題時,回來再發布一些代碼。 – Archer
因此,字母連字符,下劃線或點,然後更多的字母字符? '^ [a-zA-Z] + [-._] [a-zA-Z] + $' – chris85
@ chris85對不起,我忘了提及,字母和數字都允許 –