Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
正则表达式Java与正则表达式Javascript_Javascript_Java_Android_Regex - Fatal编程技术网

正则表达式Java与正则表达式Javascript

正则表达式Java与正则表达式Javascript,javascript,java,android,regex,Javascript,Java,Android,Regex,我有一个web应用程序和一个Android应用程序,我想在其中检查输入 现在我用Java创建了这个正则表达式: private static final String NAME_REGEX = "^[\\w ]+$"; if (!Pattern.matches(NAME_REGEX, name)) { mNameView.setError(getString(R.string.error_field_noname)); focusView = mNameView; can

我有一个web应用程序和一个Android应用程序,我想在其中检查输入

现在我用Java创建了这个正则表达式:

private static final String NAME_REGEX = "^[\\w ]+$";
if (!Pattern.matches(NAME_REGEX, name)) {
    mNameView.setError(getString(R.string.error_field_noname));
    focusView = mNameView;
    cancel = true;
}
在JavaScript中,我想测试相同的代码,因此我使用了:

var re = /^[\w ]+$/;
if (!re.test(company)) {
...
}
除了Java版本接受字符ä、ö、ü、ó、á(…)和JavaScript版本不接受字符以外,一切都正常

不知道上面提到的代码之间的区别在哪里

最后,最重要的是两者(JavaScript和Java)的工作原理完全相同

目标:
获取与Java中完全相同的Javascript正则表达式(^[\\w]+$)

请使用以下正则表达式

var re=^[äöüß]*$
上面的正则表达式也允许使用这些字符

如果您想使用特殊字符和字母,请使用下面的一个

var re=^[A-Za-z0-9!@#$%^&*äöüß()_]*$

试试这个:
/^[\wäöüß]+$/i

请注意“不区分大小写”的修饰符
i
,否则它将不匹配

这些语言使用不同的引擎来读取RegExp。Java比JavaScript更好地支持unicode


请参阅:

最先进的技术是,必须使用库才能在javascript中获得与在java中相同的结果

由于这对我来说不是一个真正的解决方案,我只是在JavaScript中使用它:

            var re = /^[A-Za-z0-9_öäüÖÄÜß ]+$/;
这是一个Java版本:

private static final String NAME_REGEX = "^[A-Za-z0-9_öäüÖÄÜß ]+$";
因此,这两种环境中的情况似乎完全相同


谢谢你的帮助

如果你不想重新发明轮子,你就必须使用它。或者为接受的字母创建一个字符类。是否需要接受所有Unicode基本字母?看一看。只需在re变量中的character类中添加
(并删除第一个
#
)。感谢您的建议,但是像Ó、á等字符也可以使用。这就是java中的行为,这就是我想在Javascript中实现的。所以你可以阅读这篇文章的答案:。