js正向预查_reghdfe固定效应命令「建议收藏」

js正向预查_reghdfe固定效应命令「建议收藏」一、正向预查(1)正向预查正向预查:匹配一个字符串,条件是这个字符串后面指定了特定的字符varstr=’1231231231′,reg=/1(?=2)/g;//或!=2console.log(str.match(reg

js正向预查_reghdfe固定效应命令「建议收藏」"

一、正向预查

(1)正向预查

正向预查: 匹配一个字符串,条件是这个字符串后面指定了特定的字符

var str = '1231231231',
    reg = /1(?=2)/g; //或!=2
console.log(str.match(reg));// ["1", "1", "1"]

匹配1后面紧跟着2的1

二、贪婪与非贪婪模式

(1)贪婪模式

贪婪模式: 只匹配多,不匹配少

(2)改非贪婪模式

非贪婪模式: 能匹配少,就不匹配多

var str = 'abcd{ 
   {efg}}abcd{ 
   {zyz}}',
    reg = /{ 
   {.*}}/g;
console.log(str.match(reg));//["{ 
   {efg}}abcd{ 
   {zyz}}"]

var str = 'abcd{ 
   {efg}}abcd{ 
   {zyz}}',
    reg = /{ 
   {.*?}}/g;
console.log(str.match(reg));//["{ 
   {efg}}", "{ 
   {zyz}}"]
var str = 'aaaaaaa',
    reg = /\w?/g;
console.log(str.match(reg));//["a", "a", "a", "a", "a", "a", "a", ""]

var str = 'aaaaaaa',
    reg = /\w??/g;
console.log(str.match(reg));//["", "", "", "", "", "", "", ""]

在量词后面加问号就是改非贪婪模式

三、replace方法

(1)replace

位置

字符串上面的方法(String.prototype)

定义及用法

replace() 可以在字符串中把某些字符替换成另一些字符

stringObject.replace(正则表达式/字符串,要替换的字符)

replace内置函数

var str = 'aabbccdd',
    reg = /(\w)\1(\w)\2/g;
var str1 = str.replace(reg, function ($, $1, $2) { 
   
    console.log($, $1, $2);
});
// aabb a b
// ccdd c d

第一个参数是匹配出来的字符串,第二个参数往后是子表达式

大坑

var str = 'JSplusplus';
console.log(str.replace('plus', '+'));//JS+plus

replace不具备全局匹配,所以只能匹配一个

示例1

将JSplusplus替换成js++

var str = 'JSplusplus',
    reg = /plus/;
console.log(str.replace(reg, '+'));//JS+plus

var str = 'JSplusplus',
    reg = /plus/g;
console.log(str.replace(reg, '+'));//JS++

示例2

将xxyy替换成yyxx

//方法一
var str = 'aabbccdd',
    reg = /(\w)\1(\w)\2/g;
var str1 = str.replace(reg, '$2$2$1$1');
console.log(str1); //bbaaddcc

//方法二
var str = 'aabbccdd',
    reg = /(\w)\1(\w)\2/g;
var str1 = str.replace(reg, function ($, $1, $2) { 
   
    return $2 + $2 + $1 + $1
});
console.log(str1);//bbaaddcc

$符可以选择子表达式,后面的数表示选择第几个表达式

示例3

将js-plus-plus改成JSPlusPlus

var str = 'js-plus-plus',
    reg = /-(\w)/g;
var str1 = str.replace(reg, function ($, $1) { 
   
    return $1.toUpperCase();
});
console.log(str1);//jsPlusPlus

示例4

将jsPlusPlus改成js_plus_plus

var str = 'jsPlusPlus',
    reg = /([A-Z])/g;
var str1 = str.replace(reg, function ($, $1) { 
   
    return '_' + $1.toLowerCase();
});
console.log(str1);//js_plus_plus

示例5

将xxyyzz改成XxYyZz

var str = 'xxyyzz',
    reg = /(\w)\1(\w)\2(\w)\3/g;
var str1 = str.replace(reg, function ($, $1, $2, $3) { 
   
    return $1.toUpperCase() + $1 + $2.toUpperCase() + $2 + $3.toUpp
});
console.log(str1);//XxYyZz

示例6

将aabbcc改成a¥b¥c¥(不能使用function)

var str = 'aabbcc',
    reg = /(\w)\1(\w)\2(\w)\3/g;
    
var str1 = str.replace(reg, '$1¥$2¥$3¥'); //a¥b¥c¥
    
var str1 = str.replace(reg, '$1$$$2$$$3$$'); //a$b$c$

注意:要用美元符的时候,在其后面加上$符就可以了

示例7

匹配特殊符号

var str = 'aa\\bb\\cc',
    reg = /\\/g;
console.log(str.match(reg)); //["\\", "\\"]

var str = 'aa?bb+cc',
    reg = /\?|\+/g;
console.log(str.match(reg)); //["?", "+"]

匹配语法里存在的符号需要转义

示例8

去重

// 剔除等个
var str = 'aabbcc',
    reg = /(\w)\1/g;
console.log(str.replace(reg, '$1')); //abc

var str = 'aabbcc',
    reg = /(\w)\1(\w)\2(\w)\3/g;
console.log(str.replace(reg, '$1$2$3')); //abc

// 剔除不等个
var str = 'aaaaabbbccccccccc',
    reg = /(\w)\1*/g;
console.log(str.replace(reg, '$1'));//abc

var str = 'aaaaabbbccccccccc',
    reg = /(\w)\1*(\w)\2*(\w)\3*/g;
console.log(str.replace(reg, '$1$2$3'));//abc

示例9

1000000000000要求每隔三位加逗号

var str = '1000000000000';
var str1 = str.replace(/(\d{3}\B)/g, '$1,')
console.log(str1); //100,000,000,000,0 方向反了, 应从后面往前匹配

var str = '1000000000000';
var reg = /(?=(\B)(\d{3})+$)/g;
var str1 = str.replace(reg, ',');
console.log(str1); //1,000,000,000,000

还是不懂请点击查看问题1

示例10

10000000.9999要求每隔三位加逗号,且小数点后面的数字保持不动

"100032320000.9992212129".replace(/(?<!\.\d*)(?=(\B\d{3})+(\.\d+|)$)/g, ",")
// "100,032,320,000.9992212129"

(2)双大括号替换值

示例1

var str = 'My name is { 
   {name}}. I\'m { 
   {age}} years old.',
    reg = /{ 
   {(.*?)}}/g;
var str1 = str.replace(reg, function (node, key) { 
   
    return { 
   
        name: 'Jone',
        age: 32
    }[key]
})
console.log(str1);
//My name is Jone. I'm 32 years old.

示例2

<script type="text/html" id="tpl">
    <div class="wrap">
        <h1>{ 
   { 
   title}}</h1>
        <h3>{ 
   { 
   author}}</h3>
        <p>{ 
   { 
   content}}</p>
    </div>
</script>

<script>
    var tpl = document.getElementById('tpl').innerHTML;
    var reg = /{ 
   {(.*?)}}/g;
    var str1 = tpl.replace(reg, function (node, key) { 
   
        return { 
   
            title: '晴天',
            author: '周杰伦',
            content: '故事的小黄花,从出生的那年就飘着,童年的荡秋千,随记忆一直飘到现在'
        }[key]
    })
    
    console.log(str1);
    // <div class="wrap">
    // <h1>晴天</h1>
    // <h3>周杰伦</h3>
    // <p>故事的小黄花,从出生的那年就飘着,童年的荡秋千,随记忆一直飘到现在</p>
    // </div>

今天的文章js正向预查_reghdfe固定效应命令「建议收藏」分享到此就结束了,感谢您的阅读。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/62952.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注