|this is a string| |this is another string| | |
我正在尝试找到一种方法,当用户输入两个没有任何字母的符号时发出警报。我目前正在使用正则表达式,但它正在捕捉第一组和第二组字符串之间的空间。
答案 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*\|)"
可能有效吗?它与|匹配在中间有任意数量的可选空格的字符,后跟另一个|字符前面或后面没有单词字符的字符。希望它有所帮助!
更新
试
(\|\s*\|)[^\w]|[^\w](\|\s*\|)
代替。我剪掉了前方和后方,但它仍然可以工作。任何真正了解javascript的人都可以随时告诉我这个答案是否因某种原因再次失败了!