0

所以我想匹配的是任何以“.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的帮助。

4

2 回答 2

2

利用

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

方括号表示:一个字符,即括号内的字符之一。但是你想要几个字符,首先是一个点,然后是 的第一个字符inputName,等等。

于 2013-08-21T18:34:16.467 回答
1

你的正则表达式应该是.*\.projectName

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

var reg = new RegExp(".*\." + inputName)
于 2013-08-21T18:34:29.077 回答