我必须匹配像
这样的值€ 6.483,00
OR值,如
18,50%
或者,再次,
+65,86 %
在Javascript函数中,我起草为:
function(s) {
return /^[0-9]?[0-9,\.]*$/.test(s);
}
但是,显然,它不起作用......应该如何改变?
答案 0 :(得分:3)
^(?:€|\+)?\s*\d+(?:\.?\d{3})*(?:,\d+)?\s*%?\s*$
字符串的开头,可选的€或+,然后是可选的空格,然后应该在列表中有一个数字,后跟一个可选的点和三个数字,然后是可选的分数,可选的空格,可选的%更多可选的空格和然后是字符串的结尾,
答案 1 :(得分:2)
var sample = [
"€ 6.483,00",
"18,50%",
"+65,86 %"
]
for(var i = 0; i < sample.length; i++) {
var input = sample[i];
var regex = /^(\u20ac ?)?\+?\d+(\.\d+)?(\,\d+)?( ?%)?$/
console.log(input + "\t" + regex.test(input));
}
如果有不符合/不符合的情况,请告诉我。