Javascript高级正则表达式计数

时间:2018-03-20 18:05:24

标签: javascript regex

我需要根据3个不同的组计算字符串中的字符数。我需要一个单独的计数,所以3个变量,但我似乎无法正确使用正则表达式,主要是因为我不知道要逃避什么。

所以类型1将是:

[a-zA-Z0-9@¡¿£_!$"¥#è¤é%ù&ìYò(Ç)*:Ø+;øÆ,<æ-=ß.>É/?ÄäÖöÑñÜü§à]

以及空格,换行和回车(每次应计算一次)

类型2将是:

|^{}[]~\€

类型3将是其他两组中没有的任何东西。

我如何设置每个var的正则表达式匹配?

编辑:我已经设法让类型1工作,这很容易,但我似乎无法获得类型2来计算这些字符。我试过了:

var type1 = ($(this).val().match(/[a-zA-Z0-9@¡¿£_!$"¥#è¤é%ù&ìYò(Ç)*:Ø+;øÆ,<æ\-=ß.>É/?ÄäÖöÑñÜü§à/\n/\r/\s]/g)||[]).length;
var type2 = ($(this).val().match(/[|{}[/]~^\\€]/g)||[]).length;
var type3 = $(this).val().length - type1 - type2;

1 个答案:

答案 0 :(得分:1)

经过一些试验和错误,我已经设法让它正常工作,显然:

var type1 = ($(this).val().match(/[a-zA-Z0-9@@¡¿£_!$"¥#è¤é%ù&ìYò(Ç)*:Ø+;øÆ,<æ\-=ß.>É/?ÄäÖöÑñÜü§à/\n/\r/\s]/g)||[]).length;
var type2 = ($(this).val().match(/[|{}[\]~^\\€]/g)||[]).length;
var type3 = $(this).val().length - type1 - type2;