标题:JavaScript字符串插入、删除、替换函数
只看楼主
longziyong
Rank: 2
来 自:四川省威远县
等 级:禁止访问
帖 子:77
专家分:23
注 册:2007-8-22
 问题点数:0 回复次数:3 
JavaScript字符串插入、删除、替换函数
说明:

  以下函数中前两个函数取出查找字符串的前一部分和后一部分,以用于其他函数。注意,调用一次 replaceString(mainStr,searchStr,replaceStr) 函数,只能将字符串 mainStr 中最先找到的一个 searchStr 字符串替换为 replaceStr 字符串,并不能将字符串 mainStr 中所有的 searchStr 字符串替换为 replaceStr 字符串,如果需要替换全部,则需要使用循环。

函数源码:

//提取查找字符串前面所有的字符
function getFront(mainStr,searchStr){
    foundOffset=mainStr.indexOf(searchStr);
    if(foundOffset==-1){
       return null;
    }
    return mainStr.substring(0,foundOffset);
}
//提取查找字符串后面的所有字符
function getEnd(mainStr,searchStr){
    foundOffset=mainStr.indexOf(searchStr);
    if(foundOffset==-1){
       return null;
    }
    return mainStr.substring(foundOffset+searchStr.length,mainStr.length);
}
//在字符串 searchStr 前面插入字符串 insertStr
function insertString(mainStr,searchStr,insertStr){
    var front=getFront(mainStr,searchStr);
    var end=getEnd(mainStr,searchStr);
    if(front!=null && end!=null){
       return front+insertStr+searchStr+end;
    }
    return null;
}
//删除字符串 deleteStr
function deleteString(mainStr,deleteStr){
    return replaceString(mainStr,deleteStr,"");
}
//将字符串 searchStr 修改为 replaceStr
function replaceString(mainStr,searchStr,replaceStr){
    var front=getFront(mainStr,searchStr);
    var end=getEnd(mainStr,searchStr);
    if(front!=null && end!=null){
       return front+replaceStr+end;
    }
    return null;
}

使用示例:

  假设有一表单,用于接收用户的留言信息。我们需要将留言内容中用户输入的回车换行替换为 HTML 标签 <br>,同时还需要将空格符替换为 &nbsp;,这样在显示留言信息的时候就能按用户输入的原格式进行显示了。

html文件如下:

<html>
<head>
<script language="javaScript">

//此处由以上提供的脚本函数源码填充,即getFront、getEnd、replaceString
//[、insertString、deleteString]。

//表单检测函数
function checkForm(form){
    var gb_contentStr=form.elements["gb_content"].value;
    
    //将留言内容中的所有空格符替换为&amp;nbsp;&nbsp;
    while(gb_contentStr.indexOf(" ") != -1 ){
          gb_contentStr=replaceString(gb_contentStr," ","&amp;nbsp;");
    }
    
    //将留言内容中的所有回车符替换为<br>
    while(gb_contentStr.indexOf("\r\n") != -1 ){
          gb_contentStr=replaceString(gb_contentStr,"\r\n","<br>");
    }
    
    form.elements["gb_content"].value=gb_contentStr;   //保存由以上脚本修改后的留言内容
    return true;  //提交留言信息
}
</script>
</head>
<body>
  <form action="writePro.asp" method="post" name="addliuyan" onSubmit="return checkForm(this)">
  <table width="50%"  border="1" cellspacing="0" cellpadding="0" align="center">
    <tr valign="middle">
      <td width="15%" height="25" align="right">留言内容:</td>
      <td width="35%" height="25" align="center">
      <textarea style="overflow: auto; width: 100%;" name="gb_content" rows="11"></textarea>
      </td>
    </tr>
  </table>
  </form>
</body>
</html>

文章引用地址:http://

[[it] 本帖最后由 longziyong 于 2008-7-21 19:30 编辑 [/it]]
搜索更多相关主题的帖子: 字符 函数 mainStr JavaScript searchStr 
2008-07-21 19:27
渚薰
Rank: 6Rank: 6
等 级:贵宾
威 望:22
帖 子:1132
专家分:0
注 册:2006-8-6
得分:0 
……
replaceStr完全可以用replace来代替
str.replace(from_str, to_str)
如果是要全部替换,可以用正则表达式
str.replace(new RegExp('str','g'),to_str);

insertStr完全可以用splice代替
str.splice(str, insertedIndex, insertStr);

个人ajax技术专题站: " target="_blank">http://www. 我不会闲你烦,只会闲你不够烦!
2008-07-22 09:51
longziyong
Rank: 2
来 自:四川省威远县
等 级:禁止访问
帖 子:77
专家分:23
注 册:2007-8-22
得分:0 
谢谢版主指点!

LZY'Blog http://www.
2008-07-27 17:02
jikeytang
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2010-12-23
得分:0 
str.splice
字符串没有splice方法的,只有数组才有这个方法。
2010-12-23 09:28



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-224709-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 1.090196 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved