javascript - 在 OR 中将正则表达式组合在一起?

标签 javascript jquery regex

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

ID and NAME tokens must begin with a letter ([A-Za-z]) and may be followed by any number of letters, digits ([0-9]), hyphens ("-"), underscores ("_"), colons (":"), and periods (".").

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

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

最佳答案

管道是正则表达式中的逻辑或。在这种情况下,parens 不是必需的。但是,通常,您希望对子模式进行分组:

/(^\d|\s)/

ID 的模式(\w = [a-zA-Z0-9_]):

/^[a-zA-Z][\w:.-]*$/

关于javascript - 在 OR 中将正则表达式组合在一起?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8850800/

相关文章:

javascript - 是否需要 Redux 在左侧显示 ItemList,在右侧显示 ItemContent?

javascript - 如何将公历和伊斯兰历合二为一 (javascript)

javascript - 重新排列图 block

Javascript/jQuery - 替换字符串中最后一次出现的单词

javascript - 为什么此正则表达式 "^(0[1-9]|1[0-9]|2[0-9]|3[01])/(0[1-9]|1[012])/(19[0-9]{2}|20[0-1][0-7])$"对于 16/06/2008、21/02/2008 等日期会失败......?

regex - 在进一步匹配之前使用正则表达式收集组

javascript - 我如何在 Meteor 中设置和获取 cookie(服务器端)?

javascript - "Back to top"手机点击按钮不隐藏

python - 正则表达式匹配 Python 函数调用

javascript - 如何显示隐藏链接中的特定部分