您好,我想知道如何过滤掉这些自定义 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, ' ');
}
已解决,作者:Mariano。输入后<meta charset="UTF-8">
我可以将符号随意粘贴到我的替换函数中并替换它们。
最佳答案
您没有将替换值分配给detail.description
。使用以下选项之一:
将返回值分配给对象属性:
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>
或者通过共享调用,在函数上下文中引用您的对象属性:
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/