Javascript 将id分配给正则表达式模式

Javascript 将id分配给正则表达式模式,javascript,regex,Javascript,Regex,我需要将一个ID分配到一个模式中,以便有人可以在我的第一个文本字段中写入内容,然后在第二个文本字段中写入关键字,然后关键字将是RegExp搜索的模式 JavaScript function getInput(textfield) { // get value from field var inString = document.getElementById("string").value; var inSubstring = document.getElementById("

我需要将一个ID分配到一个模式中,以便有人可以在我的第一个文本字段中写入内容,然后在第二个文本字段中写入关键字,然后关键字将是RegExp搜索的模式

JavaScript

function getInput(textfield)
{   // get value from field
    var inString = document.getElementById("string").value;
    var inSubstring = document.getElementById("substring").value;

    // search for pattern
    var patt1 = /Id/g;

    // document.writeln(patt1);

    var result = inString.match(patt1); 

    // choose paragraph and write the result
    document.writeln(result);

    // document.getElementById("Answer").innerHTML = result;

}
HTML

<body>
    <form id="form1" name="form1" method="post" action="">
    <label>Enter a string
        <input id="string" name="string" type="text" />
        </label>
        <input name="Button" type="submit" value="Submit" id="Button" onclick="getInput('textfield')" />
        <br />
        <br />
        <label>Enter a substring to search
        <input id="substring" name="substring" type="text" />
      </label>
    </form>

    <p id="Answer">  </p>
</body>

输入一个字符串


输入要搜索的子字符串

使用对象而不是内联正则表达式:

function getInput(textfield)
{   // get value from field
    var inString = document.getElementById("string").value;
    var inSubstring = document.getElementById("substring").value;

    // search for pattern
    var patt1 = new RegExp(inSubstring, "g");

    // document.writeln(patt1);

    var result = inString.match(patt1); 

    // choose paragraph and write the result
    document.writeln(result);

    // document.getElementById("Answer").innerHTML = result;

}

我相信你想改变这个正则表达式:

var patt1 = /Id/g;
并支持要搜索的变量id

您可以使用具有单词边界的
RegExp
对象:

var patt1 = new RegExp('\\b' + id + '\\b', 'g');
或者,您可以转储正则表达式并使用
String#indexOf
,如下所示:

index = inString.indexOf(id);

不客气。我相信词的界限对你来说很重要。