在正则表达式中指定复杂条件

时间:2012-05-01 15:18:57

标签: javascript regex html5

HTML 5中的id属性值具有以下规则

1.The string should contain nonwhitespace characters
2. It should contain at least one letter

我怎样才能以正则表达式形式表示这一点。我达到了满足第一个条件的正则表达式。

/(^|\s)\S+/ig

但是我怎样才能在上述正则表达式中指出第二个条件 ......我是正则表达式的新手......

2 个答案:

答案 0 :(得分:4)

你的限制有误。 HTML5 ID data type必须:

  • 必须至少有一个字符
  • 不得包含任何空格字符

这是:

^\S+$

完成。

注意:

  • 正则表达式中没有任何字符(\S不是字符),您不必使正则表达式不区分大小写(/.../i是多余的)。
  • 由于您的正则表达式已锚定(^...$),因此只能进行一次匹配。这意味着不需要“全局”修饰符,因此/.../g也是多余的。

答案 1 :(得分:1)

最简单的方法是匹配两个表达式。

myString.match(/(^|\s)\S+/i) && myString.match(/[a-zA-Z]/)