js 正则表达式

 let area = str.replace(/\//g, "");   去掉/
 
var str = str.replace(/#.*|\//g,'');  去掉/和#后面的字符
 
var str=str.replace(/^.*#/g,'');   去掉#前面的字符
 
var str="Hello world!";
//查找"Hello"
var patt=/Hello/g;
var result=patt.test(str);
document.write("返回值: " + result); 
//查找 "Runoob"
patt=/Runoob/g;
result=patt.test(str);
document.write("<br>返回值: " + result);


***************************************************************
1.match() 方法可在字符串内检索指定的值,或找到一个或多个正则表达式的匹配。
var str="The rain in SPAIN stays mainly in the plain";
var n=str.match(/ain/g);
输出: ain,ain,ain


*****************************************
  • runoo+b,可以匹配 runoob、runooob、runoooooob 等,+ 号代表前面的字符必须至少出现一次(1次或多次)。

  • runoo*b,可以匹配 runob、runoob、runoooooob 等,* 号代表字符可以不出现,也可以出现一次或者多次(0次、或1次、或多次)。

  • colou?r 可以匹配 color 或者 colour,? 问号代表前面的字符最多只可以出现一次(0次、或1次)。

 

 

 1.正则表达式 模式修正符

i 不区分(ignore)大小写;
例如: /abc/i 可以匹配 abc、aBC、Abc 
g 全局(global)匹配 
如果不带g,正则过程中字符串从左到右匹配,找到第一个符合条件的即匹配成功,返回
如果带g,则字符串从左到右,找到每个符合条件的都记录下来,知道字符串结尾位置
例如: 
var str = 'aaaaaaaa'
var reg1 = /a/;  str.match(reg1)  // 结果为:["a", index: 0, input: "aaaaaaaa"]
var reg2 = /a/g; str.match(reg2)  // 结果为:["a", "a", "a", "a", "a", "a", "a", "a"]

 

 

2.去掉最后=后面的内容

var str="idfa=vc=lrt=mac=userId=cityId=geo_lng=nw=s=sv=geo_lat=udid=sign=v=5.2.0";
var reg=/(.*=)[^=]+/;
str=str.replace(reg,"$1");
console.log(str);  


3.查找最后一个匹配
或许这样应该可以:(.+)(a.b)
那查找最后一个a,就是:(.+)(a)



4.替换最后一个/后面的内容(/[^/]*$)
/about/resources/research/achievements/tts






5.match方法的使用,匹配字符串的值

先介绍参数为普通字符串的使用方式,此时match方法的返回值是存放首次匹配内容的数组。如果没有找到匹配结果,返回null。语法结构:

1 str.match(searchvalue)
参数解析:
(1).searchvalue:必需,规定方法要检索的字符串。
代码实例:
 let str="antzone"; 
console.log(str.match("n"));
代码运行效果:
["n", index: 1, input: "antzone", groups: undefined]

 

对上述代码运行结果分析如下:
(1).match方法在有匹配结果的时候返回值是一个数组。
(2).数组第一个元素是match方法首次匹配到的子字符串,"antzone"虽然有多个"n",但是返回的数组只存储首次匹配到的"n",如果match方法的参数是全局匹配的正则,将会存储所有的匹配到的子字符串。



 

=======================================================================================

 

1.在 JavaScript 中,正则表达式通常用于两个字符串方法 : search() 和 replace()。

search() 方法用于检索字符串中指定的子字符串,或检索与正则表达式相匹配的子字符串,并返回子串的起始位置。

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

var str = "Visit Runoob!"; 
var n = str.search(/Runoob/i);

返回:n=6

 

replace() 方法使用正则表达式

使用正则表达式且不区分大小写将字符串中的 Microsoft 替换为 Runoob :

var str = document.getElementById("demo").innerHTML;
var str = 'Visit Microsoft!';
var txt = str.replace(/microsoft/i,"Runoob");

 

正则表达式修饰符

修饰符 可以在全局搜索中不区分大小写:

修饰符描述
i 执行对大小写不敏感的匹配。
g 执行全局匹配(查找所有匹配而非在找到第一个匹配后停止)。
m 执行多行匹配。

 

 如果没有设置全局匹配,那么将替换首次匹配的位置;如果设置了全局匹配,那么将替换所有匹配位置:

// 非全局匹配 '_test_test'.replace(/test/, 'r'); // '_r_test'

// 全局匹配 '_test_test'.replace(/test/g, 'r'); // '_r_r'

 

 

2.test() 方法用于检测一个字符串是否匹配某个模式.

如果字符串中有匹配的值返回 true ,否则返回 false。

var str="Hello world!";
//查找"Hello"
var patt=/Hello/g;
var result=patt.test(str);
document.write("返回值: " +  result);     打印:true
//查找 "Runoob"
patt=/Runoob/g;
result=patt.test(str);
document.write("<br>返回值: " +  result);
 打印:false

 

 

 

 

转:https://www.cnblogs.com/ranyonsue/p/10757567.html

正则测试:https://c.runoob.com/front-end/854/

posted @ 2020-06-05 11:14  炽橙子  阅读(196)  评论(0编辑  收藏  举报