RegEx用于传递除字符列表以外的所有字符

时间:2019-05-19 18:16:57

标签: javascript regex

我想要一个包含除英语和波斯数字之外的所有字符的模式。我找到了这种模式,但是我的问题是如何对付这种模式。

例如包含*和/和...,但不包含1 2 3

此模式获取所有数字:

^[\u0600-\u06FF\s0-9]+$

3 个答案:

答案 0 :(得分:1)

我们可以通过在字符列表中添加不需要的unicode,然后轻扫其他所有内容来解决此问题,我不确定空格是否是不需要的。

也许,像这样的修改可以起作用:

([\s\S].*?)([\x{0600}-\x{06FF}0-9]+)?

演示

对于JavaScript,我们只用u替换x:

const regex = /([\s\S].*?)([\u{0600}-\u{06FF}0-9]+)?/gmu;
const str = `everthing we wish to have before 1 2 3 ۱ ۲ ۳ and everything else we wish to have`;
const subst = `$1`;

// The substituted value will be contained in the result variable
const result = str.replace(regex, subst);

console.log('Substitution result: ', result);

enter image description here

RegEx

如果这不是您想要的表达式,则可以在regex101.com中修改/更改表达式。

答案 1 :(得分:1)

这不是ASCII,也不是波斯数字

[^0-9\u06F0-\u06F9]+

答案 2 :(得分:1)

这应该有效

true

Demo

注意:如果我忘记了一些波斯数字,只需在/[^\d۱۲۳۴۵۶۷۸۹]/g

之前添加即可