javascript - 字符串替换正则表达式,从 Facebook 内容中删除符号

标签 javascript regex string replace

您好,我想知道如何过滤掉这些自定义 Facebook 符号。

CULTURE CLUB PRESENTS JENNIFER CARDINI
▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬

We proudly presents JENNIFER CARDINI
Support by Monsieur Moustache & Thang



▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
LINE-UP
▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬

#TOWNHALL

▮ Monsieur Moustache

▮ Thang

▮ JENNIFER CARDINI


▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
JENNIFER CARDI ...

预期结果是相同的文本,没有粗连字符和音乐符号。

我对正则表达式知之甚少。我正在使用这个简单的函数,但我认为我需要另一个替换模式。

 function zonderRareSymbolen(str) {
   new_string = str.replace(/^([ A-Za-z0-9_@#+-.'"]+(\r)?(\n)?)*$/g, ''); 
   return new_string.toLowerCase();
 }

这可能吗?我已经尝试将符号粘贴到替换模式中。 我不能使用只允许字母和数字的模式吗?

更新 如果我将文本逐字放入:

zonderRareSymbolen('... Kisses ▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬ Come ...');
function zonderRareSymbolen(str) {
  new_string = str.replace(/▬/g, ''); 
  return new_string;
 }

但不在我的 detail.description 上来自对象的值:

zonderRareSymbolen(String(detail.desciption));
function zonderRareSymbolen(str) {
  new_string = str.replace(/▬/g, ''); 
  return new_string;
 }

有什么想法吗?

更新 替换功能似乎不适用于自定义符号。 我现在能做的就是解决这个问题,只允许使用所需的字符,如下所示:

function zonderRareSymbolen(str) { return (str).replace(/[^a-zA-Z0-9- ,=?&:.'"@/]/g, ' '); }

enter image description here

已解决,作者:Mariano。输入后<meta charset="UTF-8">我可以将符号随意粘贴到我的替换函数中并替换它们。

最佳答案

您没有将替换值分配给detail.description。使用以下选项之一:

  1. 将返回值分配给对象属性:

        var detail = {
            id: 'some id',
            description: ".... Kisses\n▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬\nCome ...."
        };
        function zonderRareSymbolen(str) {
            return str.replace(/\u25AC+\r?\n?/g, '');
        }
    
        //asign the returned value
        detail.description = zonderRareSymbolen(detail.description);
    
        //print object
        result.innerText = JSON.stringify(detail);
        <body><pre id="result"></pre></body>

  2. 或者通过共享调用,在函数上下文中引用您的对象属性:

        var detail = {
            id: 'some id',
            description: ".... Kisses\n▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬\nCome ...."
        };
        function zonderRareSymbolen(obj) {
            //obj is a reference to the object passed by value
            obj.description = obj.description.replace(/\u25AC+\r?\n?/g, '');
        }
    
        //call by sharing
        zonderRareSymbolen(detail);
    
        //print object
        result.innerText = JSON.stringify(detail);
    <body><pre id="result"></pre></body>

<小时/>

JavaScript 按值传递变量。但对象的值实际上是一个引用,因此,在函数上下文中,其成员之一的更改将持续存在。详细信息请参见Is JavaScript a pass-by-reference or pass-by-value language? .

关于javascript - 字符串替换正则表达式,从 Facebook 内容中删除符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33789665/

相关文章:

java - 将字符串的一部分从一个词保存到另一个词

c - 使用双指针对字符串中的字母进行排序

JavaScript 嵌套事件

javascript - 使用jquery中的stetimeout函数循环settimeout

PHP preg_match 获取字符串之间

javascript - 在 Javascript 中组合正则表达式

使用 strtok() 后的条件

javascript - 在 useEffect 中使用自定义 Hook 时出错

javascript - 与 'ws://./' 的 WebSocket 连接失败:连接建立时出错:net::ERR_NAME_NOT_RESOLVED

jquery - jquery 正则表达式 字母数字