在不考虑第二组2个符号之间的空间的情况下找到2个符号之间的空间

时间:2017-05-06 01:24:29

标签: javascript regex

|this is a string| |this is another string|    | |

我正在尝试找到一种方法,当用户输入两个没有任何字母的符号时发出警报。我目前正在使用正则表达式,但它正在捕捉第一组和第二组字符串之间的空间。

3 个答案:

答案 0 :(得分:0)

您可以使用\s*说明两个字符之间的任何数量/种类的空白。因此,要查找两个|个字符,但它们之间只有空格,您可以搜索\|\s*\|。 (|需要进行转义,因为它对正则表达式具有or运算符的特殊含义,例如,dog|cat匹配dog或“cat。”

答案 1 :(得分:0)

试试这个:

function hasTwoConsecutiveSymbols (str, symb = '|') {
  return str.replace(/\s/g, '').includes(`${symb}${symb}`)
}

console.log(hasTwoConsecutiveSymbols('|this is a string| |this is another string| | |')) //true

// so you could do alert thus:
if (hasTwoConsecutiveSymbols('|this is a string| |this is another string| | |')) alert("No words between pipes")

你可以改变符号。

答案 2 :(得分:0)

我没有真正编写javascript,但这看起来很有趣,因为它更像是一个正则表达式问题,所以我尝试使用在线javascript正则表达式模拟器。也许有些事情如下:

"(\|\s*\|)(?!\w)|(?<!\w)(\|\s*\|)"

可能有效吗?它与|匹配在中间有任意数量的可选空格的字符,后跟另一个|字符前面或后面没有单词字符的字符。希望它有所帮助!

link to regex to test

更新

(\|\s*\|)[^\w]|[^\w](\|\s*\|)

代替。我剪掉了前方和后方,但它仍然可以工作。任何真正了解javascript的人都可以随时告诉我这个答案是否因某种原因再次失败了!