Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/85.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 在OR中组合正则表达式?_Javascript_Jquery_Regex - Fatal编程技术网

Javascript 在OR中组合正则表达式?

Javascript 在OR中组合正则表达式?,javascript,jquery,regex,Javascript,Jquery,Regex,我正在测试input class=“k”是否包含HTML ID属性的有效字符,如果不包含,则显示警报: ID和名称标记必须以字母([a-Za-z])开头,并且可以是 后跟任意数量的字母、数字([0-9])、连字符(“-”), 下划线(“”)、冒号(“:”)和句点(“.”) 我想在逻辑OR中组合这两个正则表达式有没有办法将它们合并到一个正则表达式中? $('.k').keyup(function(){ if((/^[\d]/).test($(this).val())) alert('Not

我正在测试
input class=“k”
是否包含HTML ID属性的有效字符,如果不包含,则显示
警报:

ID和名称标记必须以字母([a-Za-z])开头,并且可以是 后跟任意数量的字母、数字([0-9])、连字符(“-”), 下划线(“”)、冒号(“:”)和句点(“.”)

我想在逻辑OR中组合这两个正则表达式有没有办法将它们合并到一个正则表达式中?

$('.k').keyup(function(){
   if((/^[\d]/).test($(this).val())) alert('Not valid!');
   if((/[\s]/).test($(this).val()))  alert('Not valid!');
});

管道是正则表达式中的逻辑OR。在这种情况下,没有必要使用paren。但是,通常需要将子模式分组:

/(^\d|\s)/
ID的模式(
\w
=
[a-zA-Z0-9}
):


正如您所知,ID或名称令牌必须精确匹配的内容,您可以编写一个正则表达式来仅匹配有效的标记:

^[A-Za-z]([-\w:.])*$

如果输入与此不匹配,则存在无效匹配(注意:
\w
匹配数字和下划线)

注意,
\w
不一定局限于每个正则表达式引擎中的
[A-Za-z]
。最好在这里具体点。@Tomalak你的意思是
\w
在javascript中并不总是
[a-zA-Z0-9.
的缩写?@Gremo不确定——它在Java正则表达式中,但对于其他语言,
\w
依赖于语言环境。@Gremo在javascript中,
\w
等于
[a-zA-Z0-9.
。在其他正则表达式解释器中,
\w
也可以包含变音符号。
^[A-Za-z]([-\w:.])*$