Javascript 将id分配给正则表达式模式
我需要将一个ID分配到一个模式中,以便有人可以在我的第一个文本字段中写入内容,然后在第二个文本字段中写入关键字,然后关键字将是RegExp搜索的模式 JavaScriptJavascript 将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("
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);
不客气。我相信词的界限对你来说很重要。