一.请写一个关于浮点数(能科学计数)的JS正则表达式;
二.写一个通用的正则表达式以满足下列的要求
Line( 6 2 , 0.4 1 )
Line( 8 2 , -0.3 2, 4 1.01 )
Line( 18 20 , -0.3 -2, 24 12.1 , 33.1 55 )
其他要求:
(1)Line不分大小写;
(2)以逗号隔开表示每个坐标对.坐标对的个数最少为2;
(3)有空格的地方,空格个数不能限制;
二.写一个通用的正则表达式以满足下列的要求
Line( 6 2 , 0.4 1 )
Line( 8 2 , -0.3 2, 4 1.01 )
Line( 18 20 , -0.3 -2, 24 12.1 , 33.1 55 )
其他要求:
(1)Line不分大小写;
(2)以逗号隔开表示每个坐标对.坐标对的个数最少为2;
(3)有空格的地方,空格个数不能限制;
(2)以逗号隔开表示每个坐标对.坐标对的个数最少为2;
除此之外,容错能力太差!!!
我随便调一个数字比如 5.5.5 也返回TRUE
"1e"
,"5.5.5"
,"abc"
,"--1"
,"1"
,"-1"
,"+1"
,".02"
,"-.02"
,"+.02"
,"1.0"
,"-1.0"
,"+1.0"
,"1.01"
,"-1.01"
,"+1.01"
,"1.0e1"
,"-1.0e1"
,"+1.0e1"
,"1.0e-10"
,"-1.0e-10"
,"+1.0e-10"
];var re = /^(\+|\-)?\d*(\.\d+)?(e(\+|\-)?\d+)?$/i;for (var i = 0; i < floats.length; i++) {
document.write(floats[i]);
document.write("=");
document.write(re.test(floats[i]));
document.write("<br/>");
}var texts = [
,"1 2,,,,, 3 "
,"1 2 3 "
,"-1 , 2 ,3 "
,"+1 aa"
,"+1 12e2, -1.2"
,"+1 12,,1e2, -1.2"
,"+1 1 -1e-1 2e2, -1.2"
];var re2 = /^\s*((\+|\-)?\d*(\.\d+)?(e(\+|\-)?\d+)?(\s*|\,))+$/i;for (var i = 0; i < texts.length; i++) {
document.write(texts[i]);
document.write("=");
document.write(re2.test(texts[i]));
document.write("<br/>");
}
输出:
1e=false
5.5.5=false
abc=false
--1=false
1=true
-1=true
+1=true
.02=true
-.02=true
+.02=true
1.0=true
-1.0=true
+1.0=true
1.01=true
-1.01=true
+1.01=true
1.0e1=true
-1.0e1=true
+1.0e1=true
1.0e-10=true
-1.0e-10=true
+1.0e-10=true
undefined=false
1 2,,,,, 3 =true
1 2 3 =true
-1 , 2 ,3 =true
+1 aa=false
+1 12e2, -1.2=true
+1 12,,1e2, -1.2=true
+1 1 -1e-1 2e2, -1.2=true
var re = /^(\+|\-)?\d+(?:,\d{3})+(?:\.\d+)?$/i;
alert(re.test('1,111,111.0'))
alert(re.test('1,111,111.0'))
/line\((\s*-?\d+(?:.\d+)?\s+-?\d+(?:.\d+)?\s*(?:,\s*)?){2,}\)/i
纠正/line\((\s*-?\d+(?:\.\d+)?\s+-?\d+(?:\.\d+)?\s*(?:,\s*)?){2,}\)/i