请教,这个JavaScript正则表达式怎么实现

必须以字母或中文开头,但不能以http://或https://开头。

我这个表达式哪里不对:`
/^(?!http|https)[a-zA-Zu4e00-u9fa5]*$/

阅读 2.3k
3 个回答

换个说法

  • http://开始,不通过
  • http:s//开始,不通过
  • 字母汉字之外的字符开始,不通过
!/(^https?:\/\/)|(^[^a-zA-Z\u4e00-\u9fa5])/.test('张123') // true
!/(^https?:\/\/)|(^[^a-zA-Z\u4e00-\u9fa5])/.test('a123') // true
!/(^https?:\/\/)|(^[^a-zA-Z\u4e00-\u9fa5])/.test('456') // false
!/(^https?:\/\/)|(^[^a-zA-Z\u4e00-\u9fa5])/.test('http://') // false
!/(^https?:\/\/)|(^[^a-zA-Z\u4e00-\u9fa5])/.test('https://') // false

\u4e00-\u9fa5
你没写反斜杠还是被转译了没显示出来啊。。 写了反斜杠是对的

  • 要求是不能以http://https://开头,但你只检查了httphttps
  • 匹配中文的正则u前面要有转义符/[\u4e00-\u9fa5]/
  • 题目只限制了开头的字符,而你的表达式限制了整个字符串只能是中文和字母
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题