我对常规exp不好,我想匹配另一个字符串末尾的字符串。
var keyword = new Array();
keyword[0] = " void main";
var pool1 = "abdodfo void main";
var pool2 = "abdodfo void main a";
var pool3 = "abdodfo void main ab void mai";
控制结构中正确的正则表达式将满足ff:
*应匹配
if(pool1.match(keyword[0]))
*不应匹配
if(pool2.match(keyword[0]))
if(pool3.match(keyword[0]))
我使这段代码更简单,我将这用于我的c ++ IDE项目的语法检查错误。
答案 0 :(得分:5)
使用$
表示输入字符串的结尾:
/ void main$/
var pattern = / void main$/;
var pool1 = "abdodfo void main";
var pool2 = "abdodfo void main a";
var pool3 = "abdodfo void main ab void mai";
console.log(pattern.test(pool1)); // => true
console.log(pattern.test(pool2)); // => false
console.log(pattern.test(pool3)); // => false
答案 1 :(得分:1)
$
符号表示字符串的结尾:
var test = " void main";
var matches = test.match(/main$/); // returns an array of matches, in this case ["main"]
if (matches.length > 0) {
// do stuff
}
slice()
在这种特殊情况下,您还可以使用slice()
函数,这可能更简单:
var test = " void main";
if (test.slice(-4) === "main") {
// do stuff
};
关于slice()
的{{3}}到link的文档。