如何使用JavaScript从字符串中提取十进制数
我想从字母数字字符串(比如金额)中提取十进制数如何使用JavaScript从字符串中提取十进制数,javascript,regex,jsp,struts-1,Javascript,Regex,Jsp,Struts 1,我想从字母数字字符串(比如金额)中提取十进制数265.12或0.0,该字符串的值$265.12+或$265.12-或$0.0+并在jsp中应用struts逻辑标记。不知道如何提取数字可能借助于JavaScript您可以像这样使用正则表达式 在没有错误检查的情况下,将执行以下操作: var string = "$123123.0980soigfusofui" var number = parseFloat(string.match(/[\d\.]+/)) 123123.098您可能对该库感兴趣
265.12
或0.0
,该字符串的值$265.12+
或$265.12-
或$0.0+
并在jsp
中应用struts逻辑标记。不知道如何提取数字可能借助于JavaScript
您可以像这样使用正则表达式
在没有错误检查的情况下,将执行以下操作:
var string = "$123123.0980soigfusofui"
var number = parseFloat(string.match(/[\d\.]+/))
123123.098您可能对该库感兴趣,以便格式化货币使用:
var str = parseFloat("$265.12".match(/[\d\.]+/))
alert(str % 1); => 0.12000000000000455
再试试这个
<script type="text/javascript">
function validate(){
var amount = $("#amount").val();
alert(amount.split(".")[1]);
} </script>
</head>
<body>
<input type="hidden" name="amount" id="amount" value="25.50">
<input type="submit" onclick="validate();">
函数验证(){
var金额=$(“#金额”).val();
警报(金额拆分(“.”[1]);
}
一个更优雅的解决方案,也是一种避免0.770000004
javascript数学的方法,请执行以下操作:
var num=15.3354;
数字(字符串(num).substr(字符串(num).indexOf('.')+1))代码>
结果总是精确的小数位数。还有一个原型
,便于使用
Number.prototype.getDecimals=函数(){
返回编号(字符串(this).substr(字符串(this).indexOf('.')+1));
}
所以现在只要15.6655.getDecimals()=>6655
他怎么能在需要提取而不是打印的时候呢?有一个叫做unformat()的方法可以返回数字。例如,会计不可格式化(“12345678.90美元”);//12345678.9我相信正则表达式可以缩短为/[\d.]+/
——这是在JS中偶然发现的
<script type="text/javascript">
function validate(){
var amount = $("#amount").val();
alert(amount.split(".")[1]);
} </script>
</head>
<body>
<input type="hidden" name="amount" id="amount" value="25.50">
<input type="submit" onclick="validate();">