RegEx匹配不起作用

时间:2013-08-21 18:28:10

标签: javascript regex

所以我想要匹配的是以“.ProjectName”结尾的任何东西,所以我写了一个小测试用例。我故意使用RegExp创建模式,因为在实际情况下,我将使用变量作为reg ex模式的一部分。我不确定我的模式是不正确的(90%确定它是正确的),或者我是否滥用匹配功能(70%确定我正在起诉它)。当第二种情况notMatchName不应该返回任何内容时,打击代码会返回一些内容

var inputName = "ProjectName";
var matchName = "userInput_Heading.Heading.ProjectName";
var notMatchName = "userInput_Heading.Heading.Date";
var reg = new RegExp(".*[." + inputName + "]");
console.log(reg);
console.log(matchName.match(reg));
console.log(matchName.match(reg)[0]);
console.log(notMatchName.match(reg));
console.log(notMatchName.match(reg)[0]);

以下是JsFiddle的帮助。

2 个答案:

答案 0 :(得分:2)

使用

var reg = new RegExp(".*\." + inputName);

方括号表示:一个字符,它是括号内的一个字符。但是你需要几个特征,先是一个点,然后是inputName的第一个字符,等等。

答案 1 :(得分:1)

您的正则表达式应为.*\.projectName

如果你重写你的陈述,那将是

var reg = new RegExp(".*\." + inputName)