正则表达式匹配连续字符组

时间:2018-03-21 17:20:21

标签: javascript regex

我需要一个JS表达式来匹配/ *字符组合

我现在有了这个

/(\b\/*\b)g

但它不起作用。

请帮忙

ETA: 任何/ *应匹配的字符串

所以...

  • Hello NO MATCH
  • 123 NO MATCH
  • / * HELLo MATCH
  • / * 4534534 MATCH

2 个答案:

答案 0 :(得分:1)

由于您只想检测它是否包含某些内容,因此您不必使用正则表达式,只能使用with open ... as



.includes("/*")




答案 1 :(得分:0)

您可以使用正向前瞻并测试字符串是否包含/*

如果是这样,请在字符串.+的开头一直或多次匹配任何字符^,直到字符串$的结尾

^(?=.*\/\*).+$

<强>解释

  • ^字符串的开头
  • (?=肯定前方的正面预测
    • .*\/\*匹配任何字符零次或多次,然后/*
  • )关闭积极前瞻
  • .+匹配任何字符一次或多次
  • $字符串结尾

const strings = [
  "Hello NO MATCH",
  "123 NO MATCH",
  "/* HELLo MATCH",
  "/*4534534 MATCH",
  "test(((*/*"
];
let pattern = /^(?=.*\/\*).+$/;

strings.forEach((s) => {
  console.log(s + " ==> " + pattern.test(s));
});

我认为您也可以使用indexOf()来获取/*第一次出现的索引。如果找不到值,它将返回-1。

const strings = [
  "Hello NO MATCH",
  "123 NO MATCH",
  "/* HELLo MATCH",
  "/*4534534 MATCH",
  "test(((*/*test",
  "test /",
  "test *",
  "test /*",
  "/*"
];
let pattern = /^(?=.*\/\*).+$/;

strings.forEach((s) => {
  console.log(s + " ==> " + pattern.test(s));
  console.log(s + " ==> " + (s.indexOf("/*") !== -1));
});