[英]Validate comma separated numbers with positive/negative integers and float
我需要一個用逗號分隔的值的正則表達式,該值可以接受正/負整數以及浮點數。
Ej:3,45,2.5,12,-20
我如何得到它? 謝謝
我需要實現一個將值相加並返回結果的函數,並且它檢測到錯誤輸入的模式,例如用連字符分隔的數字
Ej:3,45,2.5,12,-20(正確)
Ej:3-45-2.5-12-20(錯誤)
但我不明白,我有以下代碼:
<html>
<head>
<script type="text/javascript">
function validar()
{
var patron = /^(-?\d*\.?\d*,?)+$/;
var numeros = document.getElementById("numeros").value;
if (!patron.test(numeros))
{
alert("Introduzca los números que desee sumar separados por comas, Ej: 3,3.25,-1");
}
else
{
suma();
}
}
function suma()
{
var entrada = document.getElementById("numeros").value;
var numeros = entrada.split(",");
var suma = 0;
for(var i = 0; i < numeros.length; i++)
{
suma += parseFloat(numeros[i]);
}
document.getElementById("resultado").value = suma;
}
</script>
</head>
<body>
Números: <input type="text" id="numeros" size="30">
Resultado: <input type="text" id="resultado" size="20">
<input type="button" value="SUMAR" onClick="validar()">
</body>
</html>
"3,45,2.5,12,-20".split(",").every(
function(x) { return /^-?\d*\.?\d*$/.test(x); }
);
或作為單個正則表達式
/^(-?\d*\.?\d*)(,-?\d*\.?\d*)*$/.test("3,45,2.5,12,-20")
經過一點重構,您將獲得
<html>
<head>
<title>JS Números</title>
</head>
<body>
Números: <input type="text" id="numeros" size="30">
Resultado: <input type="text" id="resultado" size="20">
<input type="button" value="SUMAR" onClick="suma()">
<script type="text/javascript">
var numberElement = document.getElementById("numeros");
var resultElement = document.getElementById("resultado");
var numberPattern = /^(-?\d*\.?\d*)(,-?\d*\.?\d*)*$/;
function suma() {
var numberString = numberElement.value;
if (numberPattern.test(numberString)) {
var sum = numberString.split(",").reduce(function(m,v) { return m + parseFloat(v); }, 0);
resultElement.value = sum;
} else {
alert("Introduzca los números que desee sumar separados por comas, Ej: 3,3.25,-1");
resultElement.value = "";
}
}
</script>
</body>
</html>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.