js正则表达式怎么才能全部匹配

比如要求是中文、数字、英文、-等组合,但不能单独为数字或英文,必须有中文。

我看这样的表达式是有部分匹配就为真了

var pattern = /^(([A-Za-z0-9-])*([\u4e00-\u9fa5]+[A-Za-z0-9-]*))/,
    str = '的撒旦.....';
console.log(pattern.test(str));
true

非常感谢

阅读 4.2k
1 个回答

必须包含中文,可以包含数字、大小写、-

/^[\u4e00-\u9fa5A-Za-z0-9\-]*[\u4e00-\u9fa5]+[\u4e00-\u9fa5A-Za-z0-9\-]*$/

大括号后的星号不会显示出来,网站bug啊
中文我没去查看具体匹配规则,直接用的你的表达式

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题