我对正则表达式不太熟悉.我试图测试字符串是否以另一个字符串结尾.当我期待真实时,下面的代码返回null.代码有什么问题?
var id = "John";
var exists ="blahJohn".match(/id$/);
alert(exists);
Run Code Online (Sandbox Code Playgroud)
CMS*_*CMS 22
那么,使用这种方法,您需要使用RegExp构造函数,使用您的id变量构建正则表达式:
var id = "John";
var exists = new RegExp(id+"$").test("blahJohn");
alert(exists);
Run Code Online (Sandbox Code Playgroud)
但是有很多方法可以实现这一点,例如,您可以获取id.length字符串的最后一个字符,并将其与id以下内容进行比较:
var id = "John";
var exist = "blahJohn".slice(-id.length) == id; // true
Run Code Online (Sandbox Code Playgroud)
您将需要使用一个RegExp()对象来做到这一点,而不是使用文字:
var id = "John",
reg = new RegExp(id+"$");
alert( reg.test("blahJon") );
Run Code Online (Sandbox Code Playgroud)
也就是说,如果您不知道要在运行时之前测试的值。否则,您可以执行以下操作:
alert( /John$/.test("blahJohn") );
Run Code Online (Sandbox Code Playgroud)