Javascript 如何在只有enligsh alpabet、number等的条件下使用正则表达式生成用户id验证程序
我想为密码制作一些正则表达式验证器。Javascript 如何在只有enligsh alpabet、number等的条件下使用正则表达式生成用户id验证程序,javascript,regex,Javascript,Regex,我想为密码制作一些正则表达式验证器。 密码只能有英文字母alpahbet[a-z][a-z]和数字[0-9],以及一些特定符号,如-,。 我试着做一个正则表达式条件,如下所示。但这并不适合我的情况。 const password = "123" // true const password = "abcd123" // false const result = /^[0-9]*$/.test(password); 我想创造这个条件 const password = 'abcd1234' //
密码只能有英文字母alpahbet[a-z][a-z]和数字[0-9],以及一些特定符号,如-,。
我试着做一个正则表达式条件,如下所示。但这并不适合我的情况。
const password = "123" // true
const password = "abcd123" // false
const result = /^[0-9]*$/.test(password);
我想创造这个条件
const password = 'abcd1234' // true
const password = 'A!~' // false
const password = '123456' // true
const password = 'abcd_123' // true
const password = 'abcd-123' // true
我怎样才能为正则表达式提供这些理由?你能给我一些建议吗?非常感谢您阅读。只需在
[]
testPassword=password=>/^[a-zA-Z0-9_-]*$/.test(密码);
test=password=>console.log(`Testing${password}:${testPassword(password)}`);
试验(“abcd1234”);
测试('A!~');
测试('123456');
测试(“abcd_123”);
试验(“ABcd-123”)代码><代码>^[a-zA-Z0-9\-,\.\.{1,9}$
#a-z,a-z,0-9范围
# - _,. 人物
#最小长度=1,最大长度=9
这是您想要的正则表达式
/^[a-zA-Z0-9-.]+$/
const tests=['abcd1234','A!~','123456','abcd_123','abcd-123'];
tests.forEach(testCase=>console.log(testCase,/^[a-zA-Z0-9-.]+$/.test(testCase))代码>实际上,您在当前的实现中非常接近。实际上,它所做的是检查字符串是否只由数字组成。只需在这些方括号内添加有效字符将是一个简单的解决方案。事实上,他的正则表达式应该可以解决您的问题,但请随意扩展:
const result = /^[\da-zA-Z-,_]*$/.test(password);
最简单的可能是:
valid = password => !/[^\w.,-]/.test(password)
valid('123') // true
valid('123#') // false
请注意,
和-
不会在字符类中转义(-
在末尾)和\w
==[a-zA-Z0-9_]
a-zA-Z0-9_
与\w
相同,尽管此代码可能解决问题,但一个好的答案也应该解释代码的作用和帮助。@BDL抱歉,没错。我通过电话回答,做正则表达式并在regex101中测试它已经够难的了