【问题标题】:How to use ^ in regexp?如何在正则表达式中使用 ^?
【发布时间】:2017-05-20 22:22:51
【问题描述】:

我想以[a-z] 开始字符串,下一个符号可以是[a-zA-Z0-9],所以我这样做了:

^[a-z]*\S

但这没有用。

没有^ 也可以,但允许字符串以大写字母和数字开头。

例子:

aaaa - should be ok
2aa  - should be false
a - ok
1 - false
Asdf - false
aDS3r -  ok
ssdfg2 - ok

【问题讨论】:

  • 最有可能将*移到\S之后。
  • 你明白^是做什么的吗?
  • \S 与 [a-zA-Z0-9] 不同。 \S 的意思是“没有空格”,但它可以包括的远不止字母和数字……至少在我所知道的各种实现中。此评论也适用于忽略此细节的答案。
  • @CPerkins 是的,我更新了答案以考虑到这一点

标签: javascript regex


【解决方案1】:

改为这样做:

^[a-z]\w*

下面的片段

array = ["aaaa", "2aa", "a", "1", "Asdf", "aDS3r", "ssdfg2" ];
array = array.map(function(x) {
  return x.replace(/^[a-z]\w*/g, " TRUE ")
});
console.log(array)

【讨论】:

    【解决方案2】:

    看起来您应该将* 更改为+ 以从[a-z] 中捕获至少一个符号,并且不需要\S

    ^[a-z]+\S*
    

    【讨论】:

      猜你喜欢
      • 2020-09-14
      • 2017-01-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-05-05
      • 2011-08-29
      • 2018-10-10
      相关资源
      最近更新 更多