2017-08-02 1 views
1

このコードを使用すると、入力の最後の4桁のみが表示されます。RegExパターン内で変数を使用するにはどうすればよいですか?

は、ここで私は、 "(、/.(?=.{4})/g '*')" これを置き換えたい'4' 変数と 'マスク'。そんな感じ。動的正規表現を構築するための

x.value = x.value.replace(/.(?=.{+mask+})/g, '*'); 

任意の提案プラザ

function myFunction(mask) { 
 
    var x = document.getElementById("cc"); 
 
    x.value = x.value.replace(/.(?=.{4})/g, '*'); 
 
}
<input type="text" id="cc" onkeyup="myFunction(4)" style="text-align:right">

答えて

2

使用new RegExp(string)。文字の/../の形式は、を動的コンテンツとともに使用することはできません。

文字列を作成した後に、有効なパターンがあることを確認してください。

var len = 99; 
var re = new RegExp(".(?=.{" + len + "})", "g"); 
var output = input.replace(re, "*") 

も参照してください(とのだまされやすい人に投票):

+1

どうもありがとうございました、おい。それは今働く。 "リテラル/../フォームは動的コンテンツでは使用できません。"この線が最も役立った。 – xyzabc

関連する問題