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}或者甚至更短但不那么优雅$