如何在javascript中使用正则表达式来查找字符串中的三个句点?

时间:2011-09-26 15:45:41

标签: javascript regex

好的,这可能是一个简单的正则表达式,但我不熟悉它们。我有一堆像这样的字符串:'11 .9.2.1 Fusion'或'11 .9.1 Fusion'等......所有这些都在它们的末尾有'融合'。我试图找到只有三个句号(或四组数字)的句子。这是一些像我所拥有的伪代码:

$(xml).find("Asset").each(function(){
    var projectName = $(this).find("Attribute[name='SecurityScope.Name']").text();
    if(projectName.match(where-ive-been-putting-regex-statements)){
        var patch = true;
    }else{
        var patch = false;
    }
});

有什么想法吗?

5 个答案:

答案 0 :(得分:4)

这样的东西? - /(\d+\.){3}\d+/

它匹配3组数字(至少1位数),后跟一个句号和第四个数字。

答案 1 :(得分:3)

这应该这样做:

\d+\.\d+\.\d+\.\d+\s+Fusion

匹配由文字点分隔的任意数字(一个或多个)的4组,后跟一个或多个空格,后跟文字字符串“Fusion”

匹配:11.9.2.1融合
但不符合:11.9.1 Fusion

实例:http://jsfiddle.net/Jqvtp/

答案 2 :(得分:2)

匹配'11 .9.2.1 Fusion'等字符串:

projectName.match(/^(\d+\.){3}\d+ Fusion$/)

答案 3 :(得分:1)

匹配包含三个句点的字符串的正则表达式将是

.*\..*\..*\..*

(根据您的正则表达式引擎是否提供“包含”式匹配,第一个和最后一个.*可能是多余的。)

这里的关键部分是.本身就是一个字符通配符,因此匹配任何。用反斜杠转义它会使它成为一个字面时间的匹配。

所以我们拥有的是(使用换行符进行解释)

.*   // Match any character, any number of times.  Then:
\.   // Match a literal period.  Followed by:
.*   // Any character, any number of times.  Followed by: (etc...)

答案 4 :(得分:1)

尝试:

[\d]+\.[\d]+\.[\d]+\.[\d]+ Fusion