我需要一个不允许在单词中使用双下划线的正则表达式,但有一个异常(exception):如果它在末尾并且后跟 x - 那么字符串是有效的。符号顺序不起作用。 例如:
Foo_bar__x = VALID
Foo__bar_x = INVALID
一个字符串可以包含多个下划线和字母数字符号。这是几乎符合我要求的正则表达式,它禁止使用“__”,但它不处理以 __x 结尾的情况:
^(?!.*__.*)\w+$
最佳答案
您可以将此正则表达式用于否定前瞻:
/^(?!.*__(?!x$))\w+$/
(?!.*__(?!x))
是一个否定前瞻,当我们得到 __
时断言失败后跟除 x
以外的任何字符在输入结束时。
嵌套负前瞻 (?!x$)
用于断言双下划线后面没有x
在结束之前获得成功的匹配。
关于javascript - 不允许双下划线的正则表达式,除非它在单词的末尾后跟 'x' 符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52971982/