一、repalce定义

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

stringObject.replace(regexp/substr,replacement);

参数一:必需,规定的字符串或者正则表达式
参数二:必需,一个字符串值。规定了替换文本或生成替换文本的函数。
!!!replacement 中的 $ 字符具有特定的含义。详情见W3C

  

二、有$1,$2...的例子

//把 "Doe, John" 转换为 "John Doe" 的形式:
var str = "Doe, John";
str.replace(/(\w+)\s*, \s*(\w+)/, "$2 $1"); 说明:$1,$2上就是按顺序对应小括号里面的小正则 捕获到的内容。   

  

三,第二个参数是函数

把字符串中所有单词的首字母都转换为大写:
var str = 'aaa bbb ccc';
uw=str.replace(/\b\w+\b/g, function(word){
return word.substring(0,1).toUpperCase()+word.substring(1);}
);
说明:匹配一次就执行一次函数,匹配的内容作为参数 //把数字转成对应的汉子
var ary=["一","二","三","四","五","六"]
"123456".replace(/\d/g,function(val){
return ary[val-1]
})

四、一个栗子,实现模板字符替换

var obj = {
name:'leaf',
age:20
}
var str = "我是{{name}},name是我的名字,我今年{{age}}岁";
//最终替换成"我是leaf,name是我的名字,我今年20岁"

实现:

function render(template, context) {
return template.replace(/\{\{(.*?)\}\}/g, (match, key) => context[key.trim()]);
}

说明:

  1、.*? 非贪婪匹配模式

2、每个匹配的这则组合执行一次函数

    

五、其他常用正则替换

//去除空格
String.prototype.Trim = function() {
return this.replace(/\s+/g, "");
} //去除换行
function ClearBr(key) {
key = key.replace(/<\/?.+?>/g,"");
key = key.replace(/[\r\n]/g, "");
return key;
} //去除左侧空格
function LTrim(str) {
return str.replace(/^\s*/g,"");
} //去右空格
function RTrim(str) {
return str.replace(/\s*$/g,"");
} //去掉字符串两端的空格
function trim(str) {
return str.replace(/(^\s*)|(\s*$)/g, "");
} //去除字符串中间空格
function CTim(str) {
return str.replace(/\s/g,'');
} //是否为由数字组成的字符串
function is_digitals(str) {
var reg=/^[0-9]*$/; //匹配整数
return reg.test(str);
}
//单词首字母大写
function uppperCase(str) {
return str.toLowerCase().replace(/( |^)[a-z]/g, (L) => L.toUpperCase());
}

  

六、其他

 正则匹配url:

 /^https?:\/\/(([a-zA-Z0-9_-])+(\.)?)*(:\d+)?(\/((\.)?(\?)?=?&?[a-zA-Z0-9_-](\?)?)*)*$/i

或者:

(https?|ftp|file)://[-A-Za-z0-9+&@#/%?=~_|!:,.;]+[-A-Za-z0-9+&@#/%=~_|]

最新文章

  1. JavaScript闭包(Closure)
  2. WindowsForm如何实现类似微软project软件的甘特图?
  3. .Net程序员之Python基础教程学习----字典的使用 [Third Day]
  4. SQL初级第三课(下)
  5. js中的getAttribute方法使用示例
  6. BOOST的AUTO link机制以及配置
  7. ubuntu系统下创建软件桌面快捷方式
  8. [C#] 常用工具类——直接在浏览器输出数据
  9. C# 获取路径中文件名、目录、扩展名等
  10. 【exp/imp】将US7ASCII字符集的dmp文件导入到ZHS16GBK字符集的数据库中
  11. VR全景智慧城市,完美的将虚拟与现实结合
  12. Android性能优化之启动速度优化
  13. Sublime Text3 运行Python 出现Error:Decode error - output not utf-8
  14. Windows下使用notepad++对文本进行行列转换
  15. 使用linux部署tomcat项目
  16. Windows Server 2019 容器化探索-Docker安装
  17. [Swift]LeetCode662. 二叉树最大宽度 | Maximum Width of Binary Tree
  18. 【读书笔记】iOS-成为一名开发者
  19. mysql存储过程基础
  20. 【Intel AF 2.1 学习笔记二】AF中的页面——Panel

热门文章

  1. SiteMesh在项目中的配置
  2. SpringCloud的Hystrix(一) 一个消费者内的两个服务监控
  3. redis入门(14)redis集群下的数据分区存储
  4. Python之线程
  5. Python之协程
  6. MySql查询正在进行中的事务
  7. cache和buffer
  8. hdu1003 Max Sum---最大子段和+记录开始结束点
  9. ASP.NET CORE系列【六】Entity Framework Core 之数据库迁移
  10. java中的方法引用