正则表达式字符串结束时无法使用Javascript

Ton*_*ich 18 javascript regex

我对正则表达式不太熟悉.我试图测试字符串是否以另一个字符串结尾.当我期待真实时,下面的代码返回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)

  • `var id = "Ke$ha";` (3认同)

Jam*_*ers 5

您将需要使用一个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)