Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/440.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 查找并替换字符串中的所有匹配项_Javascript_Arrays_Regex_Javascript Objects_Vue Filter - Fatal编程技术网

Javascript 查找并替换字符串中的所有匹配项

Javascript 查找并替换字符串中的所有匹配项,javascript,arrays,regex,javascript-objects,vue-filter,Javascript,Arrays,Regex,Javascript Objects,Vue Filter,我正在尝试创建一个过滤器来替换文章中的字符 我想在一个字符串中找到所有匹配的元素,并用数组中的元素替换它们,但这不起作用。如何修复它 //要替换的字符串->&8221;Lorem ipsum dolor sit amet&8211;献祭精英。奥古斯·奥纳雷(Suspendisse vitae augue ornare),ultricies ligula at,Temporal felis&8211;埃尼亚羚羊。最终的结果是,这是一种侵权行为,而不是一种暴力行为。大鼠静脉曲张的预防。杜奈克罗那克

我正在尝试创建一个过滤器来替换文章中的字符

我想在一个字符串中找到所有匹配的元素,并用数组中的元素替换它们,但这不起作用。如何修复它

//要替换的字符串->&8221;Lorem ipsum dolor sit amet&8211;献祭精英。奥古斯·奥纳雷(Suspendisse vitae augue ornare),ultricies ligula at,Temporal felis&8211;埃尼亚羚羊。最终的结果是,这是一种侵权行为,而不是一种暴力行为。大鼠静脉曲张的预防。杜奈克罗那克罗那克罗那克罗那克罗那克罗那克罗那克罗那克罗那克罗那克罗那克罗那克罗那克罗那克罗那克罗那克罗那克罗那克罗那克罗那克罗那克。丘脑门。不,我不知道该怎么办。阿利奎姆·米·奥迪奥(Aliquam mi odio)、马莱苏阿达(malesuada ac arcu vitae)、比本杜姆·康瓦利斯·里苏斯(bibendum convallis risus); 函数charReplacevalue{ 设desc=值; 常数重置={ '&8211;': '–', '&8221;': '', '&8222;': '' }; 用于将钥匙放回原位{ 描述替换键,替换[键]; } 返回描述; }解决方案1 使用。拆分…加入…:

//要替换的字符串 常量字符串='&8221;Lorem ipsum dolor sit amet&8211;献祭精英。奥古斯·奥纳雷(Suspendisse vitae augue ornare),ultricies ligula at,Temporal felis&8211;埃尼亚羚羊。最终的结果是,这是一种侵权行为,而不是一种暴力行为。大鼠静脉曲张的预防。杜奈克罗那克罗那克罗那克罗那克罗那克罗那克罗那克罗那克罗那克罗那克罗那克罗那克罗那克罗那克罗那克罗那克罗那克罗那克罗那克罗那克罗那克。丘脑门。不,我不知道该怎么办。阿利奎姆·米·奥迪奥(Aliquam mi odio)、马莱苏亚达·阿尔库·维塔(malesuada ac arcu vitae)、比本杜姆·康瓦利斯·里苏斯(bibendum convallis risus); 函数charReplacevalue{ 常数重置={ '&8211;': '–', '&8221;': '', '&8222;': '' }; 设desc=值; 对于Object.KeyStore的常量键{ desc=desc.splitkey.jointoReplace[key]; } 返回描述; } console.logcharReplacestring;解决方案1 使用。拆分…加入…:

//要替换的字符串 常量字符串='&8221;Lorem ipsum dolor sit amet&8211;献祭精英。奥古斯·奥纳雷(Suspendisse vitae augue ornare),ultricies ligula at,Temporal felis&8211;埃尼亚羚羊。最终的结果是,这是一种侵权行为,而不是一种暴力行为。大鼠静脉曲张的预防。杜奈克罗那克罗那克罗那克罗那克罗那克罗那克罗那克罗那克罗那克罗那克罗那克罗那克罗那克罗那克罗那克罗那克罗那克罗那克罗那克罗那克罗那克。丘脑门。不,我不知道该怎么办。阿利奎姆·米·奥迪奥(Aliquam mi odio)、马莱苏亚达·阿尔库·维塔(malesuada ac arcu vitae)、比本杜姆·康瓦利斯·里苏斯(bibendum convallis risus); 函数charReplacevalue{ 常数重置={ '&8211;': '–', '&8221;': '', '&8222;': '' }; 设desc=值; 对于Object.KeyStore的常量键{ desc=desc.splitkey.jointoReplace[key]; } 返回描述; }
console.logcharReplacestring 这是我认为最短的。不需要循环,您可以使用

可以将函数指定为第二个参数。在这种情况下 函数将在执行匹配后调用

像这样:

const replacements = [
    { regex: /–/, replacement: '-' },
    { regex: /”/, replacement: '"' },
    { regex: /„/, replacement: '"' }
];

let newStr = '”Lorem ipsum dolor sit amet &#8211 consectetur...'; // Full str
replacements.forEach(set => {
    newStr = newStr.replace(set.regex, set.replacement);
});
var-str=&8221;Lorem ipsum dolor sit amet&8211;献祭精英。奥古斯·奥纳雷(Suspendisse vitae augue ornare),ultricies ligula at,Temporal felis&8211;埃尼亚羚羊。最终的结果是,这是一种侵权行为,而不是一种暴力行为。大鼠静脉曲张的预防。杜奈克罗那克罗那克罗那克罗那克罗那克罗那克罗那克罗那克罗那克罗那克罗那克罗那克罗那克罗那克罗那克罗那克罗那克罗那克罗那克罗那克罗那克。丘脑门。不,我不知道该怎么办。我的奥迪奥,我的生命之角,我的生命之角;; str=str.replace/&8211|&8221;|&8222;/g、 str,p1,p2,p3=>{ ifp1返回–; 如果P2 | | p3返回“”; };
console.logstr 这是我认为最短的。不需要循环,您可以使用

可以将函数指定为第二个参数。在这种情况下 函数将在执行匹配后调用

像这样:

const replacements = [
    { regex: /–/, replacement: '-' },
    { regex: /”/, replacement: '"' },
    { regex: /„/, replacement: '"' }
];

let newStr = '”Lorem ipsum dolor sit amet &#8211 consectetur...'; // Full str
replacements.forEach(set => {
    newStr = newStr.replace(set.regex, set.replacement);
});
var-str=&8221;Lorem ipsum dolor sit amet&8211;献祭精英。奥古斯·奥纳雷(Suspendisse vitae augue ornare),ultricies ligula at,Temporal felis&8211;埃尼亚羚羊。最终的结果是,这是一种侵权行为,而不是一种暴力行为。大鼠静脉曲张的预防。杜奈克罗那克罗那克罗那克罗那克罗那克罗那克罗那克罗那克罗那克罗那克罗那克罗那克罗那克罗那克罗那克罗那克罗那克罗那克罗那克罗那克罗那克。丘脑门。不,我不知道该怎么办。我的奥迪奥,我的生命之角,我的生命之角;; str=str.replace/&8211|&8221;|&8222;/g、 str,p1,p2,p3=>{ ifp1返回–; 如果P2 | | p3返回“”; };
console.logstr 您可以使用带有所有连接键的正则表达式,并使用正则表达式为alternative签名并为replacement接受一个函数,该函数将找到的键作为替换对象的键

函数charReplacevalue{ const-torerece={'-8211;':'-8221;':'',-8222;':''; 返回值.replace 新的RegExpObject.keystemplace.join'|','g', k=>t替换[k] ; } 变量字符串=&8221;乱数假文 多洛·西特·阿梅特&8211;献祭精英。奥古斯·奥纳雷(Suspendisse vitae augue ornare),ultricies ligula at,Temporal felis&8211;埃尼亚羚羊。最终的结果是,这是一种侵权行为,而不是一种暴力行为。大鼠静脉曲张的预防。杜奈克罗那克罗那克罗那克罗那克罗那克罗那克罗那克罗那克罗那克罗那克罗那克罗那克罗那克罗那克罗那克罗那克罗那克罗那克罗那克罗那克罗那克。丘脑门。不,我不知道该怎么办。我的奥迪奥,我的生命之角,我的生命之角;;
console.logcharReplacestring 您可以使用带有所有连接键的正则表达式,并使用正则表达式为alternative签名并为replacement接受一个函数,该函数将找到的键作为替换对象的键

函数charReplacevalue{ const-torerece={'-8211;':'-8221;':'',-8222;':''; 返回值.replace 新的RegExpObject.keystemplace.join'|','g', k=>t替换[k] ; } 变量字符串=&8221;Lorem ipsum dolor sit amet&8211;献祭精英。奥古斯·奥纳雷(Suspendisse vitae augue ornare),ultricies ligula at,Temporal felis&8211;埃尼亚羚羊。最终的结果是,这是一种侵权行为,而不是一种暴力行为。大鼠静脉曲张的预防。杜奈克罗那克罗那克罗那克罗那克罗那克罗那克罗那克罗那克罗那克罗那克罗那克罗那克罗那克罗那克罗那克罗那克罗那克罗那克罗那克罗那克罗那克。丘脑门。不,我不知道该怎么办。我的奥迪奥,我的生命之角,我的生命之角;;
console.logcharReplacestring 如果尝试使用字符串替换,它将只替换该字符串的第一个实例。如果改用正则表达式,它将替换该字符串的所有匹配项。这应该相当简单,并且regex非常可读。我会这样做:

const replacements = [
    { regex: /–/, replacement: '-' },
    { regex: /”/, replacement: '"' },
    { regex: /„/, replacement: '"' }
];

let newStr = '”Lorem ipsum dolor sit amet &#8211 consectetur...'; // Full str
replacements.forEach(set => {
    newStr = newStr.replace(set.regex, set.replacement);
});

我没有测试上面的代码,但它的本质应该在您的函数中正常工作。如果要展开它,只需展开replacements数组。

如果尝试使用字符串替换,它将只替换该字符串的第一个实例。如果改用正则表达式,它将替换该字符串的所有匹配项。这应该相当简单,并且regex非常可读。我会这样做:

const replacements = [
    { regex: /–/, replacement: '-' },
    { regex: /”/, replacement: '"' },
    { regex: /„/, replacement: '"' }
];

let newStr = '”Lorem ipsum dolor sit amet &#8211 consectetur...'; // Full str
replacements.forEach(set => {
    newStr = newStr.replace(set.regex, set.replacement);
});

我没有测试上面的代码,但它的本质应该在您的函数中正常工作。如果您想展开它,只需展开replacements数组。

JS replace函数返回值,您应该赋值,然后使用该值

          let desc = value;
            const toReplace = {
                '–': '–',
                '”': '"',
                '„': '"'
            };
            for (let key in toReplace) {
                desc = desc.replace(key, toReplace[key]);
            }
            return desc;

我希望它能帮助您。

JS replace函数返回值,您应该赋值,然后使用它

          let desc = value;
            const toReplace = {
                '–': '–',
                '”': '"',
                '„': '"'
            };
            for (let key in toReplace) {
                desc = desc.replace(key, toReplace[key]);
            }
            return desc;

我希望它能帮助你。

顺便说一句,你在&8211之后漏掉了一个分号。是的,当然,更新了。顺便说一句,你在&8211之后漏掉了一个分号。是的,当然,更新了