用正则表达式怎么样能去掉错误的"-"号.
1 输入 -9933
结果 -9933
2 输入 99-33 或 --9933 或9933- 输出结果能滤掉错误的"-"号
结果: 9933 -9933 9933
问题点数:40、回复次数:8Top
1 楼net_lover(【孟子E章】)回复于 2002-05-07 17:38:15 得分 0
什么意思啊!说明白点Top
2 楼sunbeamy(阳光灿烂的深夜)回复于 2002-05-07 17:51:27 得分 0
一定要全用正则式?这样行不行?
function formatNumber(sStr){
var cFirst=sStr.substr(0,1)
var sNext=sStr.substr(1)
return cFirst+sNext.replace(/-/g,"")
}Top
3 楼mmkk()回复于 2002-05-07 17:56:25 得分 5
try:
<script>
function convert(str)
{
var pattern1 = /^[^-]/gi
if(pattern1.test(str))
{
alert(str.replace(/-/gi,""))
}
else
{
alert("-"+str.replace(/-/gi,""))
}
}
convert("-100adfas--df129-")
</script>Top
4 楼flylyke(爱就像英雄莫问出处)回复于 2002-05-07 17:56:40 得分 0
可能是想把-找出来然后kill掉他吧?Top
5 楼sunbeamy(阳光灿烂的深夜)回复于 2002-05-07 18:07:43 得分 0
不对吧,我看是把字串格式化成合法的数(主要是负数处理)吧?Top
6 楼8988(晓月)回复于 2002-05-07 18:09:50 得分 10
<script>
s="---99----999--";
alert(math(s));
function math(str){
return str.replace(/(-+)/g,"-").replace(/-$/g,"").replace(/(\d)(-)(\d)/g,"$1$3");
}
</script>Top
7 楼mmkk()回复于 2002-05-07 18:38:23 得分 0
楼上的简洁精炼,思路很清晰,学习!Top
8 楼qiushuiwuhen(秋水无恨)回复于 2002-05-08 10:48:54 得分 25
第二种,临时替换法
<script>
s="---12----345--";
alert(math(s));
function math(str){
return str.replace(/(^\-+)/g,"+").replace(/-/g,"").replace(/^\+/g,"-");
}
</script>
推荐第三种:
<script>
s="---12----345--";
alert(math(s));
function math(str){
return str.match(/(^-|\d)/g).join("");
}
</script>
Top




