【问题标题】:Regex for string with dots带点的字符串的正则表达式
【发布时间】:2014-07-03 16:06:32
【问题描述】:

我正在尝试创建一个正则表达式来验证预期在{{ }} 之间并且可能在中间包含点的字符串,例如:{{boy}}{{boy.age}}{{family.boy.age}}。这不应该被验证:boy.age.(因为末尾的点。

现在我有这个:/\{\{\s*(\w+)\s*\}\}/,它只接受双花括号之间的字符串。

尝试使用this web site,但无法成功(没有使用正则表达式的经验)。

【问题讨论】:

  • 一个点可以匹配\.。还缺少哪些其他信息?
  • 要求如此模糊很难说,但您可能想要/\{\{\s*\w[\.\w]*\w\s*\}\}/

标签: javascript regex string validation


【解决方案1】:

你可以使用这个正则表达式:

\{\{(\w+\.)*\w+\}\}

如果您需要空格,请使用以下内容:

\{\{\s*(\w+\.)*\w+\s*\}\}

【讨论】:

  • 差不多。使用*而不是+,否则将不接受{{boy}}
  • @dystroy 公平地说,问题文本中的任何地方都没有提到可选空格,我们唯一看到它们是在 OP 尝试正则表达式时。
  • 如果字符串前面有空格,或者字符串后面没有空格。谢谢!
【解决方案2】:

试试下面的正则表达式,

\{\{\s*\w+[\w\.]*\w+\s*\}\}

DEMO

【讨论】:

  • 这个在字符串开始之前使用空格,这是我需要的。谢谢。
  • 请注意,{{a}} 不适用于此正则表达式(这可能对您有利或不利)。
  • 如果它会更好...有可能吗?
  • @vlio20 是:另一个答案
  • @dystroy 单个字符是否表示字符串?
猜你喜欢
  • 1970-01-01
  • 2021-06-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多