javascript – 给定更多输入,确定值是否可能与正则表达式匹配

我目前正在用
JavaScript编写一个应用程序,我将输入与正则表达式匹配,但我还需要找到一种方法来将字符串与正则表达式的部分匹配.

例如:

var invalid = "x",
    potentially = "g",
    valid = "ggg", 
    gReg = /^ggg$/;

gReg.test(invalid); //returns false (correct)
gReg.test(valid);   //returns true (correct)

现在我需要找到一种方法以某种方式确定潜在变量的值与/ ^ ggg $/表达式不完全匹配,但是有更多输入,它可能!

因此,例如在这种情况下,潜在变量是g,但如果再添加两个g,它将匹配正则表达式/ ^ ggg $/

但是在无效的情况下,它无法匹配/ ^ ggg $/表达式,无论你追加多少个字符.

那么如何确定字符串是否具有匹配特定正则表达式的可能性?

最佳答案 试试这个:

var str = "abcdefgh";
var len = str.length;
var reg = "";
for(var i = str.length - 1; i > 0; i--)
{
  //replace '(' with '(?:' to make it non capturing.
  reg = '(' + str[i] + reg + ')?'; 
}
reg = "^" + str[0] + reg + "$";

var regex = new RegExp(reg);
点赞