如何去掉字符串中多余的空格?

xyofjn 2002-11-27 09:50:14
如何去掉字符串中多余的空格?只保留一个。例如:
str=" as ef gas dfsaf d d "
变换成
new="as ef gas dfsaf d d"
...全文
426 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
bncharm 2002-11-27
  • 打赏
  • 举报
回复
function KillAllSpace(x){
var i,y;

x=KillSpace(x);
y='';
for (i=0;i<x.length;i++){
if (x.charAt(i)!=' ') y=y+x.charAt(i);
}
return y;
}
xyofjn 2002-11-27
  • 打赏
  • 举报
回复
TO kpzh(华华) :
for i=1 to maxlen '这一行报错,还是“无效字符”
LoneHome 2002-11-27
  • 打赏
  • 举报
回复
<script language=javascript>
var newstr,tmp;
var str=" as ef gas dfsaf d d ";
alert(str);
tmp=/\s+/g;
newstr=str.replace(tmp," ");
alert(newstr);
</script>
kpzh 2002-11-27
  • 打赏
  • 举报
回复
下面的代码是临时想的,没有调试过,请各位看看是否可以。
Dim mystr ' as 要处理的字符串
Dim pos ' as 当前的字符的位置
Dim maxlen ' as 字符的长度
Dim tmpstr 'as 用来取得要去掉的空格
mystr=" as ef gas dfsaf d d "
tmpstr=""
'处理开头的空格
maxlen=len(mystr)
for i=1 to maxlen
if mid(mystr,i,1)<>" " then
pos=i'记录处理的位置,i-1就是开头的空格的长度
exit for
end if
next
mystr=right(mystr,maxlen-pos+1) '字符开头不要空格
'处理中间的空格,处理完成后,字符的结尾还有一个空格
maxlen=len(mystr)
for i=1 to maxlen
if mid(mystr,i,1)=" " then
tmpstr=tmpstr & " "
else
replace(mystr,tmpstr," ")
tmp=""
end if
next
'处理最后的一个空格
mystr=left(mystr,len(mystr)-1)

代码结束
wpmsoft 2002-11-27
  • 打赏
  • 举报
回复
对不起啦,我真的是不太精通正则表达式,待我再研究研究吧。呵呵。

—————————————————————————————————
   ★ 与人玫瑰,手有余香 ★
xyofjn 2002-11-27
  • 打赏
  • 举报
回复
楼上,不行呀,有错,“行:2 错误:无效字符”
wpmsoft 2002-11-27
  • 打赏
  • 举报
回复
搞定了。

Function ReplaceTest(str)
Dim regEx      ' 建立变量。
Set regEx = New RegExp ' 建立正则表达式。
regEx.Pattern = " +" ' 设置模式。
regEx.IgnoreCase = True ' 设置是否区分大小写。
ReplaceTest = regEx.Replace(Trim(str), " ") ' 作替换。
End Function

—————————————————————————————————
   ★ 与人玫瑰,手有余香 ★
wpmsoft 2002-11-27
  • 打赏
  • 举报
回复
用正则表达式可以实现你的要求,函数是replace(js)或者Replace(vbs),但是我不太精通,问一问其它高手吧。给你个帮助:

替换在正则表达式查找中找到的文本。

object.Replace(string1, string2)
参数
object
必选项。总是一个 RegExp 对象的名称。
string1
必选项。string1 是将要进行文本替换的字符串。
string2
必选项。string2 是替换文本字符串。
说明
被替换的文本的实际模式是通过 RegExp 对象的 Pattern 属性设置的。

Replace 方法返回 string1 的副本,其中的 RegExp.Pattern 文本已经被替换为 string2。如果没有找到匹配的文本,将返回原来的 string1 的副本。

下面的例子说明了 Replace 方法的用法。

Function ReplaceTest(patrn, replStr)
Dim regEx, str1 ' 建立变量。
str1 = "The quick brown fox jumped over the lazy dog."
Set regEx = New RegExp ' 建立正则表达式。
regEx.Pattern = patrn ' 设置模式。
regEx.IgnoreCase = True ' 设置是否区分大小写。
ReplaceTest = regEx.Replace(str1, replStr) ' 作替换。
End Function

MsgBox(ReplaceTest("fox", "cat")) ' 将 'fox' 替换为 'cat'。
;另外,Replace 方法在模式中替换 subexpressions 。下面对以前示例中函数的调用,替换了原字符串中的所有字对:

MsgBox(ReplaceText("(\S+)(\s+)(\S+)", "$3$2$1")) ' 交换词对.


—————————————————————————————————
   ★ 与人玫瑰,手有余香 ★
xyofjn 2002-11-27
  • 打赏
  • 举报
回复
我的目的就是在split(new," ")后数组里没有空格。
不要让我对数组里每个字符串TRIM。换个方法。
climix 2002-11-27
  • 打赏
  • 举报
回复
在asp设计的过程中,加入split语句
caoshangfei 2002-11-27
  • 打赏
  • 举报
回复
你的目的是什么啊?

28,391

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧