简体   繁体   English

变音符号的正则表达式

[英]Regex for diacritics

I'm looking to implement the solution provided in this answer but it's not working.我正在寻求实施此答案中提供的解决方案,但它不起作用。 The code in this jsFiddle have looks like this:jsFiddle中的代码如下所示:

function Start() {

    $('#TheBox').keyup(function () {

        var TheInput = $('#TheBox').val();      
        var TheCleanInput = TheInput.replace(/([.\p{L}])/g, '');

        $('#TheBox').val(TheCleanInput);
    });
}

$(Start);

Basically, I'm looking to allow letters such as é è ô as well as numbers.基本上,我希望允许 é è ô 等字母以及数字。 What do I need to change to make the regex filter work?我需要更改什么才能使正则表达式过滤器正常工作?

As Casimir et Hippolyte stated in comments, Javascript does not support \\p{L} unicode character class.正如 Casimir et Hippolyte 在评论中所说,Javascript 不支持\\p{L} unicode 字符类。

You can create your own character class:您可以创建自己的字符类:

[a-zA-Z0-9À-ž]

Demo演示

If you want to allow those characters but replace characters outside those ranges, negate the character classes:如果要允许这些字符但替换这些范围之外的字符,请否定字符类:

[^a-zA-Z0-9À-ž]

Demo演示

Or as pointed out in comments:或者正如评论中指出的那样:

[A-zÀ-ÖØ-öø-įĴ-őŔ-žǍ-ǰǴ-ǵǸ-țȞ-ȟȤ-ȳɃɆ-ɏḀ-ẞƀ-ƓƗ-ƚƝ-ơƤ-ƥƫ-ưƲ-ƶẠ-ỿ]

The [À-ž] character class includes the following characters, highlighted in yellow below. [À-ž]字符类包括以下字符,下面以黄色突出显示。

在此处输入图片说明

If someone looking for only polish diacritics: [A-Za-zĄ-ćĘęÓóŁ-ńŚśŹ-ż] .如果有人只寻找波兰语变音符号: [A-Za-zĄ-ćĘęÓóŁ-ńŚśŹ-ż]

When using Java you can use a java regex for this:使用 Java 时,您可以为此使用 java 正则表达式:

import java.util.regex.Pattern;

public class WhitelistValidator {

    private static final String ANY_LETTER = "\\p{L}"; // includes diacritics
    private static final String NUMERIC = "0-9";
    public static final Pattern PATTERN = Pattern.compile(String.format("[%s%s]+", ANY_LETTER, NUMERIC));

    public boolean isValid(String valueUnderTest) {
        return PATTERN.matcher(valueUnderTest).matches();
    }
}

See https://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html参见https://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM