为了账号安全,请及时绑定邮箱和手机立即绑定

Javascript 正则表达式不起作用

Javascript 正则表达式不起作用

一只名叫tom的猫 2021-10-14 10:59:04
如果我只在开始时给出特殊符号,那么它就可以工作,否则就无法工作。例如:var password = '@Sourav12345'if (password.search(/[@_!#$%^&*()<>?/\|}{~:]/)) {    return true }else{  return false}如果我将密码更改为 Sourav@12345.it 将不起作用。请。帮我
查看完整描述

3 回答

?
小怪兽爱吃肉

TA贡献1852条经验 获得超1个赞

这是正确的正则表达式:

/[@_!#$%^&*()<>?\/\|}{~:]/

刚刚转义“/”以使其工作


查看完整回答
反对 回复 2021-10-14
?
守着一只汪

TA贡献1872条经验 获得超3个赞

您的正则表达式应该可以正常工作,您可能遇到的问题是search()如果找到第一个匹配的出现则返回索引,否则返回-1.


所以只有你@的第一个字符的情况才会false在你的情况下评估。您需要调整您的条件:


var password = 'Sourav12345@.it'

var search = password.search(/[@_!#$%^&*()<>?/\|}{~:]/);

if (search >= 0) {

    console.log(true)

 }

else{

  console.log(false)

}

或者使用不同的方法来检查像这样的正则表达式 test()


var password = 'Sourav12345@.it'

var test = /[@_!#$%^&*()<>?/\|}{~:]/.test(password);

if (test) {

  console.log(true)

} else {

  console.log(false)

}


查看完整回答
反对 回复 2021-10-14
?
温温酱

TA贡献1752条经验 获得超4个赞

search() 方法在字符串中搜索指定值并返回匹配的位置。


如果没有找到它会返回 -1 否则它会返回位置号


  var x='@Sourav12345'.search('/[@_!#$%^&*()<>?/\|}{~:]/') > 0?true:false;

console.log(x)


查看完整回答
反对 回复 2021-10-14
  • 3 回答
  • 0 关注
  • 578 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信