JavaScript字符串插入、删除、替换函数使用示例

说明:

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

  函数源码:

  [code

  //提取查找字符串前面所有的字符

  function getFront(mainStr,searchStr){

  foundOffset=mainStr.indexOf(searchStr);

  if(foundOffset==-1){

  return null;

  }

  return mainStr.substring(0,foundOffset);

  }

  [/code]

  

复制代码 代码如下:

  //提取查找字符串后面的所有字符

  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>,同时还需要将空格符替换为  ,这样在显示留言信息的时候就能按用户输入的原格式进行显示了。

  html文件如下:

  

复制代码 代码如下:

  <html>

  <head>

  <script language="javaScript">

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

  //[、insertString、deleteString]。

  //表单检测函数

  function checkForm(form){

  var gb_contentStr=form.elements["gb_content"].value;

  //将留言内容中的所有空格符替换为

  while(gb_contentStr.indexOf(" ") != -1 ){

  gb_contentStr=replaceString(gb_contentStr," "," ");

  }

  //将留言内容中的所有回车符替换为<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>