zoukankan      html  css  js  c++  java
  • JavaScript字符串插入、删除、替换函数

    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;
        
        //将留言内容中的所有空格符替换为&nbsp; 
        while(gb_contentStr.indexOf(" ") != -1 ){
              gb_contentStr=replaceString(gb_contentStr," ","&nbsp;");
        }
        
        //将留言内容中的所有回车符替换为<br>
        while(gb_contentStr.indexOf("
    ") != -1 ){
              gb_contentStr=replaceString(gb_contentStr,"
    ","<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;  100%;" name="gb_content" rows="11"></textarea>
          </td>
        </tr>
      </table>
      </form>
    </body>
    </html>


  • 相关阅读:
    protobuf简单测试应用
    golang代码片段(摘抄)
    ibatis中 $ 于 # 的 区别?
    eclipse debug 执行到断点处并没有停下,断点无效问题
    使用selenium遇到java.lang.NoSuchMethodError: org.apache.xpath.XPathContext,排查
    设置MAVEN_OPTS的推荐方法
    UI型Bug定义的处理方法
    select count(*)和select count(1)的区别
    mac下搭建java开发环境:eclipse+tomcat+maven
    eclipse中svn提交报错的解决
  • 原文地址:https://www.cnblogs.com/dyllove98/p/3214856.html
Copyright © 2011-2022 走看看