2014-01-10 110 views
0

我需要將一個ID分配到一個模式中,以便有人可以在我的第一個文本字段中寫入某些內容,然後在第二個文本字段中寫入關鍵字,然後關鍵字將會是模式由RegExp搜索。將id分配給正則表達式

的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> 

回答

0

使用RegExp對象,而不是內嵌正則表達式:

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; 

} 
+0

快速和簡單,謝謝兩位! – Trymeudie

0

我相信你想這個正則表達式來改變:

var patt1 = /Id/g; 

並支持要搜索的變量id。

您可以使用RegExp對象與字邊界:

var patt1 = new RegExp('\\b' + id + '\\b', 'g'); 

要不然你可以轉儲正則表達式,並使用String#indexOf這樣的:

index = inString.indexOf(id); 
+1

快速而簡單,謝謝你們兩位! – Trymeudie

+0

不客氣。我相信單詞的界限對你來說很重要。 – anubhava