【发布时间】:2013-04-22 22:37:59
【问题描述】:
如何匹配字符串中恰好包含“3个数字和3个字母”的单词?
例如100BLA
var regex = ?;
var string = "word word 100BLA word";
desiredString = string .match(regex);
【问题讨论】:
标签: javascript regex match
如何匹配字符串中恰好包含“3个数字和3个字母”的单词?
例如100BLA
var regex = ?;
var string = "word word 100BLA word";
desiredString = string .match(regex);
【问题讨论】:
标签: javascript regex match
\d 匹配一个数字
[a-zA-Z] 匹配一个字母
{3} 是精确匹配 3 次重复的量词
^ Anchor 匹配字符串的开头
$ Anchor 匹配字符串的结尾
因此,如果您使用所有这些新知识,您将得到这样的正则表达式:
^\d{3}[a-zA-Z]{3}$
由于在我写完答案后输入示例发生了变化,因此更新如下:
如果您的单词是较大字符串的一部分,则不需要锚点 ^ 和 $,而必须使用 word boundaries \b。
\b\d{3}[a-zA-Z]{3}\b
【讨论】:
var string = "100BLA word"; 而不是 var string = "word word 100BLA word";
首字母(不完整)
var regex = /[0-9]{3}[A-Za-z]{3}/;
编辑 1(不完整)
var regex = /[0-9]{3}[A-Za-z]{3}\b/; // used \b for word boundary
编辑 2(正确)
var regex = /\b[0-9]{3}[A-Za-z]{3}\b/; // used \b at start and end for whole word boundary
【讨论】:
var str = "Foobar100BLA"; 也会是真的。
string = "word word Foobar100BLA word"; 上仍然返回 true