Javascript 用于字母数字和一些特殊字符的正则表达式

Javascript 用于字母数字和一些特殊字符的正则表达式,javascript,regex,Javascript,Regex,我需要正则表达式- 规定- 1) 一个字母是必修的 2) 一个数字强制 一些特殊字符也被允许使用,这不是强制性的 特殊字符-[-!$^&*()| ~=`{}[]:/?,.@#] 我试过了 /((^\S*[0-9]+\S*[a-z]+\S*)|(^\S*[a-z]+\S*[0-9]+\S*))+$/i 但是如何仅使用给定的特殊字符来限制它。使用前瞻: /^(?=.*\d)(?=.*[a-zA-Z]+)(?=.*[-!$^&*()_|~=`{}\[\]:/<>?,.@#]+)[

我需要正则表达式-

规定-

1) 一个字母是必修的

2) 一个数字强制

一些特殊字符也被允许使用,这不是强制性的

特殊字符-
[-!$^&*()| ~=`{}[]:/?,.@#]

我试过了

/((^\S*[0-9]+\S*[a-z]+\S*)|(^\S*[a-z]+\S*[0-9]+\S*))+$/i
但是如何仅使用给定的特殊字符来限制它。

使用前瞻:

/^(?=.*\d)(?=.*[a-zA-Z]+)(?=.*[-!$^&*()_|~=`{}\[\]:/<>?,.@#]+)[-\w!$^&*()|~=`{}\[\]:/<>?,.@#]+$/
/^(?=..*\d)(?=.[a-zA-Z]+)(?=.[-!$^&*(?={}\[\]]:/?,.@\]+)[-\w!$^&*((?)+$/
如果不强制使用特殊字符:

/^(?=.*\d)(?=.*[a-zA-Z]+)[-\w!$^&*()|~=`{}\[\]:/<>?,.@#]+$/
/^(?=.*\d)(?=.[a-zA-Z]+)[-\w!$^&*()+$/

@sidneylibrand edited特殊字符不是强制性的。