替换指定字符的方法有很多,在本文为大家详细介绍下,JS利用正则配合replace是如何做到的,喜欢的朋友可以参考下

定义和用法

replace() 方法用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串。

语法

stringObject.replace(regexp,replacement)

参数  描述

regexp 必需。规定了要替换的模式的 RegExp 对象。请注意,如果该值是一个字符串,则将它作为要检索的直接量文本模式,而不是首先被转换为 RegExp 对象。

replacement 必需。一个字符串值。规定了替换文本或生成替换文本的函数。

返回值

一个新的字符串,是用 replacement 替换了 regexp 的第一次匹配或所有匹配之后得到的。

说明

字符串 stringObject 的 replace() 方法执行的是查找并替换的操作。它将在 stringObject 中查找与 regexp 相匹配的子字符串,然后用 replacement 来替换这些子串。如果 regexp 具有全局标志 g,那么 replace() 方法将替换所有匹配的子串。否则,它只替换第一个匹配子串。

replacement 可以是字符串,也可以是函数。如果它是字符串,那么没有匹配都将由字符串替换。但是 replacement 中的 $ 字符具有特定的含义。如下表所示,它说明从模式匹配得到的字符串将用于替换。

字符  替换文本

$1、$2、...、$99  与 regexp 中的第 1 到第 99 个子表达式相匹配的文本。

$& 与 regexp 相匹配的子串。

$` 位于匹配子串左侧的文本。

$' 位于匹配子串右侧的文本。

% 直接量符号。

注意:ECMAScript v3 规定,replace() 方法的参数 replacement 可以是函数而不是字符串。在这种情况下,每个匹配都调用该函数,它返回的字符串将作为替换文本使用。该函数的第一个参数是匹配模式的字符串。接下来的参数是与模式中的子表达式匹配的字符串,可以有 0 个或多个这样的参数。接下来的参数是一个整数,声明了匹配在 stringObject 中出现的位置。最后一个参数是 stringObject 本身。

实例

例子 1

在本例中,我们将使用 "W3School" 替换字符串中的 "Microsoft":

var str="Visit Microsoft!"

document.write(str.replace(/Microsoft/, "W3School"))

输出:

Visit W3School!

例子 2

在本例中,我们将执行一次全局替换,每当 "Microsoft" 被找到,它就被替换为 "W3School":

var str="Welcome to Microsoft! "

str=str + "We are proud to announce that Microsoft has "

str=str + "one of the largest Web Developers sites in the world."

document.write(str.replace(/Microsoft/g, "W3School"))

输出:

Welcome to W3School! We are proud to announce that W3School

has one of the largest Web Developers sites in the world.

例子 3

您可以使用本例提供的代码来确保匹配字符串大写字符的正确:

text = "javascript Tutorial";

text.replace(/javascript/i, "JavaScript");

例子 4

在本例中,我们将把 "Doe, John" 转换为 "John Doe" 的形式:

name = "Doe, John";

name.replace(/(\w+)\s*, \s*(\w+)/, "$2 $1");

例子 5

在本例中,我们将把所有的花引号替换为直引号:

name = '"a", "b"';

name.replace(/"([^"]*)"/g, "'$1'");

例子 6

在本例中,我们将把字符串中所有单词的首字母都转换为大写:

name = 'aaa bbb ccc';

uw=name.replace(/\b\w+\b/g, function(word){

return word.substring(0,1).toUpperCase()+word.substring(1);}

);

例子 7

var str="fsaf$a$assdfdasfa$a$dsfadsf";

var strr='\$'+'a'+'\$';

var name = '"a", "b"';

var reger=new RegExp("[\$]a[\$]","gm");

alert(str.replace(reger,'555888'));

PS:这里再为大家提供一款功能强大的在线正则工具供大家使用:

JavaScript正则表达式在线测试工具:

正则表达式在线生成工具:

js 正则表达式奇偶字符串替换_JS利用正则配合replace替换指定字符相关推荐

  1. js 正则表达式奇偶字符串替换_js正则表达式replace替换变量方法

    JavaScript正则实战(会根据最近写的不断更新) 1.javascript 正则对象替换创建 和用法: /pattern/flags 先简单案例学习认识下replace能干什么 正则表达式构造函 ...

  2. js 正则表达式奇偶字符串替换_Python中的正则表达式及其常用匹配函数用法简介...

    今 日 鸡 汤 此曲只应天上有,人间难得几回闻. /1 前言/ 这次给大家主要是介绍Python中的正则表达式,及其相关函数的基本使用方法,并且捎带一些正则表达式给我们带来的便利. /2 简介/ Py ...

  3. js正则表达式匹配字符串与优化过程

    前言 有时候需要实现对js源文件中的url字符串做拦截预处理,或者前端js语法高亮,或者需要对动态加载的关键源码做混淆保护,在某些步骤实现之前,有一个步骤是需要提炼出所有的合法字符串. 目标:检测源文 ...

  4. java替换换行符_Java的replace替换字符串中的回车换行符的方法

    Java的replace替换字符串中的回车换行符的方法 导语:Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承.指针等概念,因此Java语言具有功能强大 ...

  5. js请求结果拦截机器_js利用jquery的jsonp来解决ajax跨域请求被浏览器拦截结果的问题...

    先来个表.页面太多对不起我也不知道这张表是从哪个博客保存过来的,所以无法注明博客地址.非常抱歉.URL说明是否允许通信 http://www.a.com/a.jshttp://www.a.com/b. ...

  6. java js对象转字符串数组_js 转json格式的字符串为对象或数组(前后台)的方法

    一.前台 // 转换成对象 var myObject = JSON.parse(_data); alert("对象:"+myObject.msg); // 转换成数组 var my ...

  7. js正则表达式截取字符串中的数字(不包括正负号)

    >str.match(/\d+/g); 在字符串中匹配多个数字字符串 1./  /是正则表达式的起始 2.\d表示数字 3.+表示多个,在www123ddd5rt中会匹配123返回,如果没有+, ...

  8. js正则表达式验证字符串只包括大小写字母下划线和-

    背景说明 在之前的开发过程中为了校验一个字段只含有大小写字母,下划线和-花费了不少力气才搞定,想着赶快写一篇博客来记录下来,日后开发一定会遇到!! 代码实现 首先定义一个变量用来存放验证字符串的正则表 ...

  9. EXCEL利用正则匹配去替换内容

    做项目过程中需要对某一列字段进行添加"[]"将字段包裹起来,因此上网查了EXCEL的正则匹配如何使用,在此记录一下,防止忘记. 打开文件一定要选择EXCEL打开,WPS目前没有发现 ...

最新文章

  1. react非常适合入门者学习使用的后台管理框架
  2. 通过pycharm使用git
  3. linux 4.14.2编译,vmware中linux内核2.6.14.4编译全过程_linux教程
  4. 6、Flutter Error waiting for a debug connection: ProcessException: adb did not report f(转)
  5. android radiogroup 获取点击位置_屏幕连点器,解放双手[Android]
  6. centos7.2 使用rpm安装jdk8
  7. Arithmetic Sequence
  8. hdu_3062_Party(2-SAT)
  9. 2021-09-06146. LRU 缓存机制 哈希表
  10. echars的矩形数图根据大小根据一个值变化,颜色跟随另外一个值变化
  11. lavaral中文手册_Laravel5.6中文文档下载
  12. VSCode小说神器Thief-Book-VSCode页数获取
  13. span超过容器自动换行
  14. sqlserver只剩mdf数据文件如何附加
  15. 这些年我的不足(不够专注,不善于推迟满足感,阅读量不够……-无网不剩 http://t.cn/zOe1RPz)
  16. iOS RN学习随笔
  17. Vue单向绑定与双向绑定解析
  18. 什么是UV测试?为什么要进行UV老化测试?UV老化测试的标准有哪些?
  19. C++实现TTS文字语音朗读Microsoft Speech SDK
  20. 如何使用OpenAI API和Python SDK构建自己的聊天机器人

热门文章

  1. 只有创意和杜蕾斯才能救校园O2O
  2. IDEA申请学生账号Jet Brains Account教程
  3. JavaSE学生管理系统(ArrayList集合来做)
  4. 三八送什么礼物好?三八节购物清单推荐
  5. 【爬虫】基于requests的B站直播实时弹幕爬取
  6. unity 图片轮播,左右可切换
  7. 【大数据-课程】高途-天翼云侯圣文-Day2:离线数仓搭建分解
  8. element UI 走马灯使用
  9. 单片机毕设 红外热成像仪
  10. 京东面试:说说你对ByteBuf的理解