我有一个用 asp .net C# 编写的小应用程序,它在文本框中接受用户的输入,有两个按钮 - 单击第一个按钮时,我将使用文化特定值填充第二个文本框。我正在尝试将输入值设置为文化 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");
}
现在,在第二个按钮单击时,我编写了一个 javascript 函数,它将从文本框中读取值并尝试将其与正则表达式匹配。
示例输入 12345 被解析为 12 345.00 并且希望正则表达式是这样的 --> ^[+-]?[\d\ ] .?\d ([][+-]?\d+ )?$ 但这不起作用。在调试时,从文本框中读取的值是 12-345.00,但“-”不完全是连字符。我在网上搜索并找到了一些对 '\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;
}
}
编辑:为了进一步理解,我得到了这样的角色-