Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/473.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
Javascript 通过正则表达式验证所有语言字符的字段_Javascript_Regex_Validation - Fatal编程技术网

Javascript 通过正则表达式验证所有语言字符的字段

Javascript 通过正则表达式验证所有语言字符的字段,javascript,regex,validation,Javascript,Regex,Validation,我需要验证一个字段是否为空。但是它应该允许使用英语和外语字符(UTF-8),但不允许使用特殊字符。我不擅长正则表达式。所以在这方面的任何帮助都是非常好的…如果我能说“只做/^\w+$/.test(word)”,那就太好了,但是 有关JavaScript正则表达式中unicode支持(或者说缺少)的当前状态,请参阅 您可以使用他建议的库,这可能会比较慢,也可以为此寻求服务器的帮助(可能会比较慢)。如果您想支持多种语言,您必须只排除您不需要的字符,因为指定所有您想要的范围将很困难 您需要查看and或

我需要验证一个字段是否为空。但是它应该允许使用英语和外语字符(UTF-8),但不允许使用特殊字符。我不擅长正则表达式。所以在这方面的任何帮助都是非常好的…

如果我能说“只做
/^\w+$/.test(word)
”,那就太好了,但是

有关JavaScript正则表达式中unicode支持(或者说缺少)的当前状态,请参阅


您可以使用他建议的库,这可能会比较慢,也可以为此寻求服务器的帮助(可能会比较慢)。

如果您想支持多种语言,您必须只排除您不需要的字符,因为指定所有您想要的范围将很困难

您需要查看and或以确定要排除的块(例如,U+0000到U+001F)。这也可能有帮助

然后与字符类一起使用,查找要排除的内容

例如,这将检查U+0000到U+001F以及U+007F字符(显然,您将排除的不仅仅是这些字符):


[]
标识一个“字符类”(要查找的字符的列表和/或范围)。该特定类表示通过
\u001F
(包括)查找
\u0000
,以及
\u007F

,您可以测试这样的unicode字母:

str.match(/\p{L}/u)
str.match(/[^\p{L}]/u)
或者存在这样的非字母:

str.match(/\p{L}/u)
str.match(/[^\p{L}]/u)

。替换(/[^a-z0-9\s]/gi')。替换(/[\s]/g');​
您可以将此库与
\p{L}
一起使用(请记住双重转义反斜杠)。您还可以为所需的regexp分解其代码:
http://xregexp.com/addons/unicode/unicode-base.js
定义字母类别所需的范围。它不是regexp格式,您必须转换它。哎呀,我说的“这个库”是指链接的答案链接到,特别是unicode基和它的
字母
L
)类。嗨,Emil,我不擅长Regex。你能解释一下上面的正则表达式将如何验证吗?它应该验证,但不会。它的工作原理很简单:mean周围的
^
$
匹配所有内容(默认情况下,它将匹配最长的内容,但不是所有内容)。
\w
表示任何字母数字字符(后面的数字除外)和
+
-匹配1个或多个
\w
s。我想在最后一行中,您的意思是“\u001F(包括)…”而不是“\u007F(包括)…”