Javascript 在正则表达式中是否可以只接受新行输入?
这是我现在的正则表达式:Javascript 在正则表达式中是否可以只接受新行输入?,javascript,regex,Javascript,Regex,这是我现在的正则表达式: /([0-9]{2}[0-9]{2}[0-9]{2}([0-9]{2})?)/gm 它需要这样的输入: 123456 or 12345678 1234567812345678 但如果我这样写的话: 123456 or 12345678 1234567812345678 这是一场比赛。 这是防止这种情况发生的一种方法吗 由于您的全局标志,该语言为javascript,为了解决此问题,您可以使用开始和结束锚: ^([0-9]{2}[0-9]{2}[0-9]{2
/([0-9]{2}[0-9]{2}[0-9]{2}([0-9]{2})?)/gm
它需要这样的输入:
123456 or 12345678
1234567812345678
但如果我这样写的话:
123456 or 12345678
1234567812345678
这是一场比赛。
这是防止这种情况发生的一种方法吗
由于您的全局标志,该语言为javascript,为了解决此问题,您可以使用开始和结束锚:
^([0-9]{2}[0-9]{2}[0-9]{2}([0-9]{2})?)$
见演示
此外,作为一种更优雅的方式,您可以简化您的正则表达式并使用以下内容:
^([0-9]{6}([0-9]{2})?)$
这是因为您的全局标志,为了解决此问题,您可以使用开始和结束锚定:
^([0-9]{2}[0-9]{2}[0-9]{2}([0-9]{2})?)$
见演示
此外,作为一种更优雅的方式,您可以简化您的正则表达式并使用以下内容:
^([0-9]{6}([0-9]{2})?)$
添加^和$anchors对我很有效:^[0-9]{2}[0-9]{2}[0-9]{2}[0-9]{2}?$
示例可用。添加“^”和“$”锚对我来说很有效:^[0-9]{2}[0-9]{2}[0-9]{2}[0-9]{2}?$
示例可用。如果不使用^or,则不需要m标志$
至于你的问题,是的。如果希望数字位于任何位置,但不与其他字符一起,则需要查找边界-\b[0-9]{2}[0-9]{2}[0-9]{2}?:[0-9]{2}?\b,如图所示
如果您想让它仅在它是行中唯一的单词时匹配,您可以使用锚定“^”和$,就像其他答案所建议的那样,在这种情况下您需要m标志
顺便说一下,没有理由重复[0-9]{2}三次,最好使用\b[0-9]{6}?:[0-9]{2}?\b如果不使用^or,则不需要使用m标志$
至于你的问题,是的。如果希望数字位于任何位置,但不与其他字符一起,则需要查找边界-\b[0-9]{2}[0-9]{2}[0-9]{2}?:[0-9]{2}?\b,如图所示
如果您想让它仅在它是行中唯一的单词时匹配,您可以使用锚定“^”和$,就像其他答案所建议的那样,在这种情况下您需要m标志
顺便说一下,没有理由重复[0-9]{2}三次,最好使用\b[0-9]{6}:[0-9]{2}?\b如果你的数字是在一个更大的字符串中,请使用\b[0-9]{6}:[0-9]{2}\b。如果你的数字是在一个更大的字符串中,请使用\b[0-9]{6}:[0-9]{2}\b。或者更短但不那么优雅^\d\d}或者甚至更短但不那么优雅$