js replace 正则表达式(求一个js正则表达式:替换html内容中除了标签外的特定字符为另外一个字符.)

本文目录
- 求一个js正则表达式:替换html内容中除了标签外的特定字符为另外一个字符.
- js 中如何替换字符串
- JS正则表达式
- js正则表达式替换,控制整数位数
- js正则表达式怎么取出个字符串中的所有数字
- js 正则表达式是什么
- js里如何将字符串转成正则表达式
求一个js正则表达式:替换html内容中除了标签外的特定字符为另外一个字符.
《!DOCTYPE HTML》
《html》
《head》
《title》Page Title《/title》
***隐藏网址***
《script》
onload = function (){
var html = document.body.innerHTML;
var reg = /(《img(?:(?!id|》).)*)(id*》)/gi;
var idx = 0;
html = html.replace(reg, function($0, $1, $2, $3, $4, $5){
idx++;
if(typeof $2 == "undefined"){
return $1 + " id=’" + idx + "’" + $3 + $4 + $5;
}
return $1 + $2 + idx + $4 + $5;
});
document.body.innerHTML = html;
}
《/script》
《/head》
《body》
《img src="acb.jpg" id="imgx" /》
《ul》
《li》《img src="sdf.png" /》《/li》
《/ul》
《/body》
《/html》
js 中如何替换字符串
JS字符串替换函数:Replace(“字符串1″, “字符串2″), 1.我们都知道JS中字符串替换函数是Replace(“字符串1″, “字符串2″),但是这个函数只能将第一次出现的字符串1替换掉,那么我们如何才能一次性全部替换掉了? 《script》 var s = "LOVE LIFE ! LOVE JAVA ..."; alert(s); alert(s.replace("LOVE ", "爱")); alert(s.replace(/\LOVE/g, "爱")); 《/script》
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); //可以用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》
JS正则表达式
一. 正则表达式
正则表达式:其实就是一种匹配规则,用于检索字符串
定义正则表达式的两种方式:1.直接定义 2.构造函数定义
那么正则表达式正则强大的地方是它可以写 通配符(拥有特殊含义的字符)
二. 通配符
\w 表示:字母、数字、下划线
\W 表示:除了字母、数字、下划线以外的字符
\d 表示:数字
\D 表示:非数字
^ 表示:以^符号后面的第一个字符开头
表示:以表示:以符号前面的第一个字符结尾
{n} 表示:重复n次
{n,m} 表示:重复n到m次
表示:其中任意一个字符
+ 表示:重复前一项1次或多次 等价于 {1,}
* 表示:重复前一项0次或多次 等价于 {0,}
? 表示:重复前一项0次或1次 等价于 {0,1}
. 表示:除了换行符以外的任意一个字符
\. 表示:.字符 ^ 表示:^ \表示:表示:
可以用()将多个字符作为一个整体
\w 等价于
| 表示:或者
是常用汉字的unicode编码范围
三. 正则练习
四. 正则表达式配合字符串的方法
replace()方法
默认情况下,replace()方法,只会替换字符串中匹配的第一段内容
使用正则表达式,添加全局匹配修饰符g,可以替换匹配全部内容
使用正则表达式,添加忽略大小写修饰符i,在匹配内容时会忽略大小写
search()方法
可以通过正则表达式查找位置
五. 添加学生练习
《!DOCTYPE html》
《html》
《head》
《meta charset="UTF-8"》
***隐藏网址***
《meta name="viewport" content="width=device-width, initial-scale=1.0"》
《title》添加学生《/title》
《style》
.err{
color: red;
}
.ok{
color: green;
}
《/style》
《/head》
《body》
《form》
《table》
《tr》
《td》姓名:《/td》
《td》
《input type="text" id="name"》
《span id="nameMsg"》《/span》
《/td》
《/tr》
《tr》
《td》年龄:《/td》
《td》
《input type="text" id="age"》
《span id="ageMsg"》《/span》
《/td》
《/tr》
《tr》
《td》性别:《/td》
《td》
《input checked name="sex" type="radio" value="0"》男
《input name="sex" type="radio" value="1"》女
《/td》
《/tr》
《tr》
《td》爱好:《/td》
《td》
《input name="hobby" type="checkbox" value="抽烟"》抽烟
《input name="hobby" type="checkbox" value="喝酒"》喝酒
《input name="hobby" type="checkbox" value="烫头"》烫头
《input name="hobby" type="checkbox" value="睡觉"》睡觉
《/td》
《/tr》
《tr》
《td》年级:《/td》
《td》
《select id="grade"》
《option value="0"》请选择《/option》
《option value="1"》大一《/option》
《option value="2"》大二《/option》
《option value="3"》大三《/option》
《option value="4"》大四《/option》
《/select》
《span id="gradeMsg"》必须要选择一个年级《/span》
《/td》
《/tr》
《tr》
《td》邮箱:《/td》
《td》
《input type="text" id="email"》
《span id="emailMsg"》请输入正确的邮箱格式《/span》
《/td》
《/tr》
《tr》
《td》电话:《/td》
《td》
《input type="text" id="phone"》
《span id="phoneMsg"》请输入正确的电话格式《/span》
《/td》
《/tr》
《tr》
《td》生日:《/td》
《td》
《input type="text" id="bornDate"》
《span id="bornDateMsg"》请输入正确日期格式《/span》
《/td》
《/tr》
《tr》
《td》《/td》
《td》
《button type="submit"》提交《/button》
《button type="reset"》重置《/button》
《/td》
《/tr》
《/table》
《/form》
《script》
//获取姓名文本框
let name = document.querySelector(’#name’)
//获取年龄文本框
let age = document.querySelector(’#age’)
//表单的提交事件
document.querySelector(’form’).onsubmit = function(){
// 返回true提交表单,返回false不提交表单
if(checkName() & checkAge()){
return true
}else{
return false
}
}
//姓名文本框失去焦点
name.onblur = checkName
//验证姓名
function checkName(){
//定义验证姓名的正则
let reg = /^{2,4}$/
// 调用验证方法
return checkInput("#nameMsg",name,reg,’姓名正确’,’姓名必须是2-4位汉字’)
}
//年龄文本框失去焦点
age.onblur = checkAge
//验证年龄
function checkAge(){
//定义验证年龄的正则
let reg = /^\d{1,2}$|^1(\d)|20$/
// 调用验证方法
return checkInput("#ageMsg",age,reg,’年龄正确’,’年龄必须是0-120之间’)
}
//验证方法,参数分别是:span元素Id,表单元素对象,正则规则,验证成功消息,验证失败消息
function checkInput(spanId,_this,reg,okMsg,errMsg){
// 获取消息span
let span = document.querySelector(spanId)
//获取信息
let val = _this.value
if(!reg.test(val)){
span.className="err"
span.innerHTML = errMsg
return false //验证失败返回false
}else{
span.className="ok"
span.innerHTML = okMsg
return true //验证成功返回true
}
}
《/script》
《/body》
《/html》
js正则表达式替换,控制整数位数
《input onkeyup="value=value.replace(//g,’’) "
onbeforepaste="clipboardData.setData(’text’,clipboardData.getData(’text’).replace(//g,’’))"》
只能输入正整数,
只能输入 7位整数和2位小数: /^{1}\d{6}\.\d{2}$/
js正则表达式怎么取出个字符串中的所有数字
对于字符s,利用正则匹配 :var num = s.replace(//ig, "")。
js正则表达式语法:
正则表达式有两种形式,一种是普通方式,一种是构造函数方式。
普通方式:var reg=/表达式/附加参数
表达式:一个字符串,代表了某种规则,其中可以使用某些特殊字符,来代表特殊的规则,后面会详细说明。
附加参数:用来扩展表达式的含义,目前主要有三个参数:
g:代表可以进行全局匹配。
i:代表不区分大小写匹配。
m:代表可以进行多行匹配。
验证用户密码:"^\w{5,17}$"正确格式为:以字母开头,长度在6~18之间,只能包含字符、数字和下划线。
验证是否含有^%&’,;=?$\"等字符:"+"。
只能输入汉字:"^{0,}$"
验证Email地址:"^\w+(\w+)*$"。
***隐藏网址***
验证电话号码:"^(\(\d{3,4}-)|\d{3.4}-)?\d{7,8}$"正确格式为:"XXX-XXXXXXX"、"XXXX-XXXXXXXX"、"XXX-XXXXXXX"、"XXX-XXXXXXXX"、"XXXXXXX"和"XXXXXXXX"。
验证身份证号(15位或18位数字):"^\d{15}|\d{18}$"。
验证一年的12个月:"^(0?)$"正确格式为:"01"~"09"和"1"~"12"。
验证一个月的31天:"^((0?
js 正则表达式是什么
在JavaScript中,正则表达式通常用于两个字符串方法:search()和replace()。
search()方法用于检索字符串中指定的子字符串,或检索与正则表达式相匹配的子字符串,并返回子串的起始位置。
replace()方法用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串。
正则表达式的特点是:
1、灵活性、逻辑性和功能性非常强;
2、可以迅速地用极简单的方式达到字符串的复杂控制。
3、对于刚接触的人来说,比较晦涩难懂。
由于正则表达式主要应用对象是文本,因此它在各种文本器场合都有应用,小到著名器EditPlus,大到Microsoft Word、Visual Studio等大型器,都可以使用正则表达式来处理文本内容。
js里如何将字符串转成正则表达式
var regStr = ’/iOs/ig’
var regExp = eval(regStr)
regExp.test(’dksiOssd’)
按照题主题目是要想降字符串转成正则的表达式,不知是否理解对了题目的意思:

更多文章:
fontcreator怎么导入字体(如何在FontCreator中加入我想要的字)
2025年7月10日 20:00
wordpress主题二次元(怎么用wordpress搭建情侣博客怎么自己弄情侣主题求达人详细赐教!)
2025年7月4日 02:00
腾讯会议怎么向主持人询问后台记录并保存?手机储存内容会被APP浏览并上传保存APP后台服务器吗连着WIFI
2025年7月21日 04:00
正则高考复读学校(2022南京高三复读有哪些学校 南京复读学校名单)
2025年8月7日 13:30
verify例句(please-slide-to-verify是什么意思)
2025年12月5日 06:45
false的副词(英语试卷判断对错,T和F,哪个是对,那个是错)
2026年7月29日 00:00
go语言需要编译吗(Go语言能在安卓运行吗 Go是脚本语言还是汇编)
2026年3月18日 20:00
有哪些js框架(web前端三大主流框架是什么 都有哪些功能)
2025年9月22日 16:30
springfestival六年级作文(六年级过春节英语作文300字)
2026年2月27日 20:45
在java语言中下列说法正确的是(Java语言说法正确的有())
2026年9月9日 20:30
edittext下划线颜色(android 如何使EditText中不同行显示不同的颜色(两种颜色))
2026年5月15日 11:30
帝国cms手机端(请教帝国cms中的手机端同步插件bug 修复方法)
2026年1月18日 22:15











