目標は一致が見つかった場合は、ユーザーのタイプとして、xの代替値は、フォームのテキスト入力から0〜9の数字だけでなく、変数の値を置き換えることで動作しません。 JavaScriptを使用して。はなぜこのJavaScriptのRegExp concantenationは、
なぜこれは機能しませんか?
regexExpression = "([0-9]" + companyvalue + ")";
各ケースは、独立してコード化されたときに動作しますが、concantenated時には動作しません。
var regexExpression = ("[0-9]");
期待どおりに動作し、数値の代わりにX。
var regexExpression = "("companyvalue")";
期待どおりに動作し、可変テキスト入力値の代替のX。
洞察は高く評価されます。ありがとう。
function clean(e) {
\t var companyvalue = document.getElementById("company").value;
\t var textfield = document.getElementById(e);
\t var regexExpression = ('([0-9]' + companyvalue + ')');
\t var regex = new RegExp(regexExpression,"g","i");
\t \t if(textfield.value.search(regex) > -1) {
\t \t document.getElementById('status').innerHTML = "Telephone numbers and company name<br>are automatically redacted.";
\t }
\t textfield.value = textfield.value.replace(regex, "x");
\t //alert (companyvalue);
\t }
<input id="company" style="border-color:#F8980F;" class="medium required" type="text" name="company" />
<textarea id="description" onkeyup="clean('description')" onkeydown="clean('description')" class="medium" cols="25" rows="8" name="description" placeholder="Write a short summary." /></textarea>
<div id="status"></div>
可能な複製を(https://stackoverflow.com/質問/ 185510/i-concatenate-regex-literals-in-javascript) –
単語は入力文字列のスペースで区切られていますか? _ "それぞれのケースは独立してコード化されていても動作しますが、連結しても機能しません" _デモ用にスタックスニップを作成できますか? – guest271314
を参照してください。入力文字列は空白のない単一の単語ですが、複数の単語が使用される場合があるため、興味深い点を挙げます。私はスニペットを含むように私の質問を編集する。 – redant