テキストボックスでユーザーからの入力を受け取るasp .net C#で書かれた小さなアプリケーションがあります.2つのボタンがあります.最初のボタンをクリックすると、2番目のテキストボックスにカルチャ固有の値が入力されます. 入力値をカルチャ en-ZA に設定しようとしています。
これがcsファイルの私のコードです、
protected override void InitializeCulture()
{
System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("en-ZA");
//base.InitializeCulture();
}
protected void btnCulture_Click(object sender, EventArgs e)
{
decimal val = Convert.ToDecimal(txtValue.Text, System.Globalization.CultureInfo.CurrentCulture);
txtConverted.Text = val.ToString("0,0.00");
}
ここで、2 回目のボタン クリックで、テキスト ボックスから値を読み取り、それを正規表現と一致させようとする JavaScript 関数を作成しました。
サンプル入力は 12345 であり、12 345.00 として解析され、正規表現が次のようになることを期待します --> ^[+-]?[\d\ ] .?\d ([][+-]?\d+ )?$ しかし、これは機能しません。デバッグ時に、値はテキスト ボックスから 12-345.00 として読み取られますが、「-」は正確にはハイフンではありません。オンラインで検索したところ、16 進数の空白である「\xa0」への参照がいくつか見つかりましたが、正規表現でこれを処理する方法が見つかりません。ここにJavaScript関数があります:
function regexTest() {
var exp = new RegExp("^[+-]?[\\d\\ ]*\\.?\\d*([][+-]?\\d+)?$");
var price = document.getElementById("txtConverted").value;
if (price.match(exp)) {
alert("pass");
return true;
}
else {
alert("fail");
return false;
}
}
編集:さらに理解するために、私はこのようなキャラクターを取得していました-