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


Posted in Javascript onJuly 25, 2013

说明:

以下函数中前两个函数取出查找字符串的前一部分和后一部分,以用于其他函数。注意,调用一次 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>
Javascript 相关文章推荐
js 操作select和option常用代码整理
Dec 13 Javascript
js实现带搜索功能的下拉框实时搜索实时匹配
Nov 05 Javascript
javascript中使用正则计算中文长度的例子
Apr 29 Javascript
javascript学习笔记之函数定义
Jun 25 Javascript
js禁止Backspace键使浏览器后退的实现方法
Sep 01 Javascript
vue+swiper实现侧滑菜单效果
Dec 28 Javascript
js获取form表单中name属性的值
Feb 27 Javascript
详解vuex之store源码简单解析
Jun 13 Javascript
layer弹出层自定义提交取消按钮的例子
Sep 10 Javascript
微信小程序如何实现五星评价功能
Oct 15 Javascript
vue实现购物车的小练习
Dec 21 Vue.js
关于JavaScript回调函数的深入理解
Jun 27 Javascript
不使用浏览器运行javascript代码的方法
Jul 24 #Javascript
js展开闭合效果演示代码
Jul 24 #Javascript
火狐textarea输入法的bug的触发及解决
Jul 24 #Javascript
当前页禁止复制粘贴截屏代码小集
Jul 24 #Javascript
js实现倒计时(距离结束还有)示例代码
Jul 24 #Javascript
javascript中比较字符串是否相等的方法
Jul 23 #Javascript
js改变img标签的src属性在IE下没反应的解决方法
Jul 23 #Javascript
You might like
php str_pad 函数用法简介
2009/07/11 PHP
PHP中常见的缓存技术实例分析
2015/09/23 PHP
Symfony2使用第三方库Upload制作图片上传实例详解
2016/02/04 PHP
PHP常用设计模式之委托设计模式
2016/02/13 PHP
JavaScript 学习笔记(十一)
2010/01/19 Javascript
jQuery把表单元素变为json对象
2013/11/06 Javascript
javascript数组操作(创建、元素删除、数组的拷贝)
2014/04/07 Javascript
JavaScript基础知识学习笔记
2014/12/02 Javascript
深入探寻seajs的模块化与加载方式
2015/04/14 Javascript
详解AngularJS中的http拦截
2016/02/09 Javascript
基于JavaScript实现表单密码的隐藏和显示出来
2016/03/02 Javascript
javascript断点调试心得分享
2016/04/23 Javascript
ES6入门教程之let和const命令详解
2017/05/17 Javascript
React Native中导航组件react-navigation跨tab路由处理详解
2017/10/31 Javascript
解决JSON.stringify()自动将中文转译成unicode的问题
2018/01/05 Javascript
利用chrome浏览器进行js调试并找出元素绑定的点击事件详解
2021/01/30 Javascript
webpack4+express+mongodb+vue实现增删改查的示例
2018/11/08 Javascript
layui 对弹窗 form表单赋值的实现方法
2019/09/04 Javascript
原生js拖拽实现图形伸缩效果
2020/02/10 Javascript
vue中利用iscroll.js解决pc端滚动问题
2020/02/15 Javascript
[01:11:15]VGJ.S vs Secret 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
[50:02]完美世界DOTA2联赛循环赛 Magma vs IO BO2第一场 11.01
2020/11/02 DOTA
python从sqlite读取并显示数据的方法
2015/05/08 Python
Python编程使用NLTK进行自然语言处理详解
2017/11/16 Python
python  Django中的apps.py的目的是什么
2018/10/15 Python
Win10+GPU版Pytorch1.1安装的安装步骤
2019/09/27 Python
python实现两个字典合并,两个list合并
2019/12/02 Python
Python+redis通过限流保护高并发系统
2020/04/15 Python
如何实现一个python函数装饰器(Decorator)
2020/10/12 Python
CSS3径向渐变之大鱼吃小鱼之孤单的大鱼
2016/04/26 HTML / CSS
HTML5的download属性详细介绍和使用实例
2014/04/23 HTML / CSS
巴西最大的在线约会网站:ParPerfeito
2018/07/11 全球购物
大学新生欢迎词
2014/01/10 职场文书
2014年高校辅导员工作总结
2014/12/09 职场文书
2015关爱留守儿童工作总结
2014/12/12 职场文书
2014年高数考试作弊检讨书
2014/12/14 职场文书