Javascript 用于标识guid或数字的正则表达式

Javascript 用于标识guid或数字的正则表达式,javascript,regex,match,guid,Javascript,Regex,Match,Guid,我有用于guid的正则表达式: /^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i 和regex匹配一个数字: /^[0-9]*$ 但我需要匹配guid或数字。有没有一种方法可以匹配一个正则表达式。或者我应该分别检查guid和编号。是的,有很多方法。一个是在if语句中输入或匹配项: var reg1 = /^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89

我有用于guid的正则表达式:

/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i

和regex匹配一个数字:

/^[0-9]*$


但我需要匹配guid或数字。有没有一种方法可以匹配一个正则表达式。或者我应该分别检查guid和编号。

是的,有很多方法。一个是在
if
语句中输入或匹配项:

var reg1 = /^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;
var reg2 = /^[0-9]*$/;
var text = " ... ";

if (reg1.test(text) || reg2.test(text)) {
  // do your stuff here
}
另一种方法本身就是:


在正则表达式中使用
|
来匹配前面或后面的内容:

const re=/^([0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12})|[0-9]+$/i;
控制台日志('11111111-1111-1111-8111-111111111'。匹配(re)[0]);

console.log('5555'.匹配(re)[0])您可以在两个正则表达式之间使用|运算符。您可以按如下所示使用它们

/(^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i) | (^[0-9]*$)/

在这两种或两种情况之间,支架的定位似乎是错误的。
/(^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i) | (^[0-9]*$)/