繁体   English   中英

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

[英]How do i use regex in javascript to find three periods inside of a string?

好的,这可能是一个简单的正则表达式,但我对它们并不熟悉。 我有一堆这样的字符串:“ 11.9.2.1 Fusion”或“ 11.9.1 Fusion”等...它们的末尾都带有“ 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;
    }
});

有任何想法吗?

像这样吗 -/( /(\\d+\\.){3}\\d+/

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

应该这样做:

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

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

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

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

这匹配像'11 .9.2.1 Fusion'这样的字符串:

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

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

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

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

这里的关键部分是. 本身就是字符通配符,因此可以匹配任何东西 用反斜杠转义可将其转换为字面上的匹配项。

因此,我们所拥有的(用换行符进行解释)

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

尝试:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM