gpt4 book ai didi

javascript - 用于删除多语言字符串 javascript 上的特殊字符的正则表达式

转载 作者:行者123 更新时间:2023-11-29 15:14:50 24 4
gpt4 key购买 nike

我在这里解决这个问题:Regex for removing special characters on a multilingual string :

/\P{Xan}+/u

但这似乎是针对 PHP 的,我不擅长正则表达式,那么等效的 javascript 是什么?

当我在示例答案中使用正则表达式时,我收到一个无效的表达式错误,告诉我存在无效的转义?

search(event) {
const length = (string) => {
if (string.length > 1) {
return true;
}
return false;
};
const trim = (string) => {
if (string.trim() !== '') {
return true;
}
return false;
};
const keyType = (string) => {
const regex = /\P{Xan}+/u;
if (!regex.exec(string)) {
return true;
}
return false;
};
const text = this.searchListParams.searchText;
if (length(text) && trim(text) && keyType(text)) {
this.searchSubject.next(this.searchListParams);
} else {
this.mediaListParams.startRow = 0;
this.listSubject.next(this.mediaListParams);
}
}

最佳答案

PHP 中的 /\P{Xan}+/u 模式匹配任何 1+ 个非 Unicode 字母或数字的字符。

如果您需要支持任何浏览器或 JS 实现,请使用 XRegExp[^\pL\pN]+ 匹配除 Unicode 以外的任何 1+ 个字符的模式字母 (\pL) 和数字 (\pN):

var rx = XRegExp("[^\\pL\\pN]+", "g");
var s = "8੦৪----Łąka!!!!Вася, *** ,Café";
var res = XRegExp.replace(s, rx, ' ')
console.log("'"+s+"'", "=>", "'"+res+"'");
<script src="https://cdnjs.cloudflare.com/ajax/libs/xregexp/3.2.0/xregexp-all.min.js"></script>

如果您打算仅支持 ECMAScript 2018 兼容实现,您可以使用此原生正则表达式:

const rx = /[^\p{L}\p{N}]+/gu;
const s = "8੦৪----Łąka!!!!Вася, *** ,Café";
let res = s.replace(rx, " ");
console.log(`'${s}' => '${res}'`)

u 修饰符对于在 ES2018 正则表达式中启用 Unicode 类别类支持很重要。

关于javascript - 用于删除多语言字符串 javascript 上的特殊字符的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50381354/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com