Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/391.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在只有enligsh alpabet、number等的条件下使用正则表达式生成用户id验证程序_Javascript_Regex - Fatal编程技术网

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中测试它已经够难的了