JS替换字符串中空格方法


Posted in Javascript onApril 17, 2015
<input type=hidden name=“space” value=“ ”>

通常情况下输入域当中的 替换不掉(源代码当中有 ,页面上显示为空格),如果想替换掉,可以用另外手段。
增加一个隐藏域,值为 ,然后再替换

var sp=document.getElementById("space").value;

strData = document.all( "CommDN").value;

strData=strData.replace(sp,"");

js代码

function formatStr(str) 

{ 

str=str.replace(/\r\n/ig,"<br/>"); 

return str; 

}

要注意两点:

要使用正则表达式,不能使用 str.replace("\r\n", newString); ,这会导致只替换第一个匹配的子字符串。
母字符串中不一定 \r\n 会同时存在,也许只有 \n,没有 \r 也是可能的。

replace方法的语法是:stringObj.replace(rgExp, replaceText) 其中stringObj是字符串(string),reExp可以是正则表达式对象(RegExp)也可以是字符串(string),replaceText是替代查找到的字符串。。为了帮助大家更好的理解,下面举个简单例子说明一下

Js代码

<script language="javascript"> 
var stringObj="终古人民共和国,终古人民"; 
//替换错别字“终古”为“中国” 
//并返回替换后的新字符 
//原字符串stringObj的值没有改变 
var newstr=stringObj.replace("终古","中国"); 
alert(newstr); 
</script>

比我聪明的你,看完上面的例子之后,会发现第二个错别字“终古”并没有被替换成“中国”,我们可以执行二次replace方法把第二个错别字“终古”也替换掉,程序经过改进之后如下:

Js代码

<script language="javascript"> 
var stringObj="终古人民共和国,终古人民"; 
//替换错别字“终古”为“中国” 
//并返回替换后的新字符 
//原字符串stringObj的值没有改变 
var newstr=stringObj.replace("终古","中国"); 
newstr=newstr.replace("终古","中国"); 
alert(newstr); 
</script>

我们可以仔细的想一下,如果有N的N次方个错别字,是不是也要执行N的N次方replace方法来替换掉错别字呢??呵,不用怕,有了正则表达式之后不用一个错别字要执行一次replace方法。。程序经过改进之后的代码如下

Js代码

<script language="javascript"> 
var reg=new RegExp("终古","g"); //创建正则RegExp对象 
var stringObj="终古人民共和国,终古人民"; 
var newstr=stringObj.replace(reg,"中国"); 
alert(newstr); 
</script>

上面讲的是replace方法最简单的应用,不知道大家有没有看懂??下面开始讲稍微复杂一点的应用。。    大家在一些网站上搜索文章的时候,会发现这么一个现象,就是搜索的关键字会高亮改变颜色显示出来??这是怎么实现的呢??其实我们可以用正则表达式来实现,具体怎么样实现呢?简单的原理请看下面的代码

Js代码

<script language="javascript"> 
var str="中华人民共和国,中华人民共和国"; 
var newstr=str.replace(/(人)/g,"<font color=red>$1</font>"); 
document.write(newstr); 
</script>

上面的程序缺少互动性,我们再改进一下程序,实现可以自主输入要查找的字符

Js代码

<script language="javascript"> 
var s=prompt("请输入在查找的字符","人"); 
var reg=new RegExp("("+s+")","g"); 
var str="中华人民共和国,中华人民共和国"; 
var newstr=str.replace(reg,"<font color=red>$1</font>"); 
document.write(newstr); 
</script>

可能大家都会对$1这个特殊字符表示什么意思不是很理解,其实$1表示的就是左边表达式中括号内的字符,即第一个子匹配,同理可得$2表示第二个子匹配。。什么是子匹配呢??通俗点讲,就是左边每一个括号是第一个字匹配,第二个括号是第二个子匹配。。    当我们要把查找到的字符进行运算的时候,怎么样实现呢??在实现之前,我们先讲一下怎么样获取某一个函数的参数。。在函数Function的内部,有一个arguments集合,这个集合存储了当前函数的所有参数,通过arguments可以获取到函数的所有参数,为了大家理解,请看下面的代码

Js代码

<script language="javascript"> 
function test(){ 
 alert("参数个数:"+arguments.length); 
 alert("每一个参数的值:"+arguments[0]); 
 alert("第二个参数的值"+arguments[1]); 
 //可以用for循环读取所有的参数 
} 
 
test("aa","bb","cc"); 
</script>

看懂上面的程序之后,我们再来看下面一个有趣的程序

Js代码

<script language="javascript"> 
var reg=new RegExp("\\d","g"); 
var str="abd1afa4sdf"; 
str.replace(reg,function(){alert(arguments.length);}); 
</script>

我们惊奇的发现,匿名函数竟然被执行了二次,并且在函数里还带有三个参数,为什么会执行二次呢??这个很容易想到,因为我们写的正则表达式是匹配单个数字的,而被检测的字符串刚好也有二个数字,故匿名函数被执行了二次。。在匿名函数内部的那三个参数到底是什么内容呢??为了弄清这个问题,我们看下面的代码。

Js代码

<script language="javascript"> 
function test(){ 
for(var i=0;i<arguments.length;i++){ 
 alert("第"+(i+1)+"个参数的值:"+arguments); 
} 
} 
var reg=new RegExp("\\d","g"); 
var str="abd1afa4sdf"; 
str.replace(reg,test); 
</script>

经过观察我们发现,第一个参数表示匹配到的字符,第二个参数表示匹配时的字符最小索引位置(RegExp.index),第三个参数表示被匹配的字符串(RegExp.input)。其实这些参数的个数,还会随着子匹配的变多而变多的。弄清这些问题之后,我们可以用另外的一种写法

Js代码

<script language="javascript"> 
function test($1){ 
 return "<font color='red'>"+$1+"</font>" 
} 
var s=prompt("请输入在查找的字符","人"); 
var reg=new RegExp("("+s+")","g"); 
var str="中华人民共和国,中华人民共和国"; 
var newstr=str.replace(reg,test); 
document.write(newstr); 
</script>

看了上面的程序,原来可以对匹配到的字符为所欲为。下面简单举一个应用的例子

Js代码

<script language="javascript"> 
var str="他今年22岁,她今年20岁,他的爸爸今年45岁,她的爸爸今年44岁,一共有4人" 
function test($1){ 
 var gyear=(new Date()).getYear()-parseInt($1)+1; 
 return $1+"("+gyear+"年出生)"; 
} 
var reg=new RegExp("(\\d+)岁","g"); 
var newstr=str.replace(reg,test); 
alert(str); 
alert(newstr); 
</script>

以上所述就是本文的全部内容了,希望大家能够喜欢。

Javascript 相关文章推荐
兼容IE、FireFox、Chrome等浏览器的xml处理函数js代码
Nov 30 Javascript
Javascript实现带关闭按钮的网页漂浮广告代码
Jan 12 Javascript
深入浅出理解javaScript原型链
May 09 Javascript
数据分析软件之FineReport教程:[5]参数界面JS(全)
Aug 13 Javascript
基于JS实现密码框(password)中显示文字提示功能代码
May 27 Javascript
js实现悬浮窗效果(支持拖动)
Mar 09 Javascript
jQuery实现的简单手风琴效果示例
Aug 29 jQuery
Jquery的autocomplete插件用法及参数讲解
Mar 12 jQuery
解决layui的使用以及针对select、radio等表单组件不显示的问题
Sep 05 Javascript
node.JS二进制操作模块buffer对象使用方法详解
Feb 06 Javascript
十分钟教你上手ES2020新特性
Feb 12 Javascript
uni-app使用countdown插件实现倒计时
Nov 01 Javascript
最简单的JavaScript验证整数、小数、实数、有效位小数正则表达式
Apr 17 #Javascript
jQuery实现自定义事件的方法
Apr 17 #Javascript
jQuery插件slides实现无缝轮播图特效
Apr 17 #Javascript
js实现touch移动触屏滑动事件
Apr 17 #Javascript
JavaScript实现控制打开文件另存为对话框的方法
Apr 17 #Javascript
JavaScript对象反射用法实例
Apr 17 #Javascript
深入分析Javascript跨域问题
Apr 17 #Javascript
You might like
PHP中创建并处理图象
2006/10/09 PHP
php实现仿写CodeIgniter的购物车类
2015/07/29 PHP
PHP使用Pthread实现的多线程操作实例
2015/11/14 PHP
Laravel中前端js上传图片到七牛云的示例代码
2017/09/04 PHP
学习thinkphp5.0验证类使用方法
2017/11/16 PHP
WordPress中鼠标悬停显示和隐藏评论及引用按钮的实现
2016/01/12 Javascript
JavaScript实现经典排序算法之冒泡排序
2016/12/28 Javascript
jQuery中select与datalist制作下拉菜单时的区别浅析
2016/12/30 Javascript
echarts学习笔记之箱线图的分析与绘制详解
2017/11/22 Javascript
jQuery+CSS实现的table表格行列转置功能示例
2018/01/08 jQuery
Vue在页面数据渲染完成之后的调用方法
2018/09/11 Javascript
jquery轻量级数字动画插件countUp.js使用详解
2019/10/17 jQuery
Javascript ParentNode和ChildNode接口原理解析
2020/03/16 Javascript
javascript设计模式 ? 工厂模式原理与应用实例分析
2020/04/09 Javascript
微信小程序实现多行文字滚动
2020/11/18 Javascript
vue实现可移动的悬浮按钮
2021/03/04 Vue.js
将Python中的数据存储到系统本地的简单方法
2015/04/11 Python
在windows系统中实现python3安装lxml
2016/03/23 Python
Python读取和处理文件后缀为.sqlite的数据文件(实例讲解)
2017/06/27 Python
Django csrf 两种方法设置form的实例
2019/02/03 Python
Python+OpenCV采集本地摄像头的视频
2019/04/25 Python
python 图像插值 最近邻、双线性、双三次实例
2020/07/05 Python
is_file和file_exists效率比较
2021/03/14 PHP
CSS3弹性盒模型开发笔记(一)
2016/04/26 HTML / CSS
使用Html5、CSS实现文字阴影效果
2018/01/17 HTML / CSS
Sofmap官网:日本著名的数码电器专卖店
2017/05/19 全球购物
英国在线房屋中介网站:Yopa
2018/01/09 全球购物
Annoushka英国官网:英国奢侈珠宝品牌
2018/10/20 全球购物
营销专业应届生求职信
2013/11/26 职场文书
美术教师自我鉴定
2014/02/12 职场文书
祖国在我心中演讲稿400字
2014/05/04 职场文书
小学教师个人先进事迹材料
2014/05/17 职场文书
普通话宣传标语
2014/06/26 职场文书
我们的节日中秋节活动总结
2015/03/23 职场文书
六年级作文之自救
2019/12/19 职场文书
SQL实现LeetCode(197.上升温度)
2021/08/07 MySQL