【发布时间】:2019-09-18 05:47:15
【问题描述】:
我一直在尝试检查我的字符串的开头或结尾是否有下划线或连字符。
// pass
sdq
lorem ipsum
abc_def
harry-_potter
// catch
fg_
_asq
_dqw-
-asq-sq
尝试了以下,但我正在学习正则表达式,所以我不太确定如何从这里继续前进:
/^[-_]?.*[-_]$/
^ => beginning anchor
[-_]? => start with either - or _, optionally
.* => match any number of any character (I believe I could have used ranges here)
[-_]$ => check for - or _ at the end
我也知道一种可能的解决方案是使用|,它用于条件,我需要的是能够检查:
在字符串的开头或结尾处有一个连字符或下划线。
我该如何检查?我可以使用|以外的东西吗?
【问题讨论】:
-
/^[-_]|[-_]$/是正确的解决方案。 -
要匹配完整的字符串,您可以使用
^[-_].*|.*[-_]$。 -
/^[-_]|[_-]$/只是为了保持对称;) -
@CinCout stackoverflow.com/a/4544642/2317490 ;不是说op会面对它,我每次看到dot-star都会发冷......
-
@Janie:我会发布一个答案,但 OP 询问 我可以使用
|以外的其他东西吗? 所以我不确定基于替代的答案是否正确OP的回答与否。
标签: javascript regex