javascript - 不允许双下划线的正则表达式,除非它在单词的末尾后跟 'x' 符号

标签 javascript regex

我需要一个不允许在单词中使用双下划线的正则表达式,但有一个异常(exception):如果它在末尾并且后跟 x - 那么字符串是有效的。符号顺序不起作用。 例如:

Foo_bar__x = VALID
Foo__bar_x = INVALID

一个字符串可以包含多个下划线和字母数字符号。这是几乎符合我要求的正则表达式,它禁止使用“__”,但它不处理以 __x 结尾的情况:

^(?!.*__.*)\w+$

最佳答案

您可以将此正则表达式用于否定前瞻:

/^(?!.*__(?!x$))\w+$/

RegEx Demo

(?!.*__(?!x))是一个否定前瞻,当我们得到 __ 时断言失败后跟除 x 以外的任何字符在输入结束时。

嵌套负前瞻 (?!x$)用于断言双下划线后面没有x在结束之前获得成功的匹配。

关于javascript - 不允许双下划线的正则表达式,除非它在单词的末尾后跟 'x' 符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52971982/

相关文章:

javascript - 在 Canvas HTML getSeconds() 中,有没有办法让时钟运行 56 秒 56 分 28 小时?

javascript - Codeigniter:在进入 Controller 之前验证数据

javascript - 检查按钮单击时的整数输入

javascript - 将事件绑定(bind)到多个对象

java - 如何在java中查找包含正则表达式的单词

javascript - 我需要获取一个输入的字符串,取出非数字字符,然后如果该字符串以1开头,则删除1

javascript - Google Apps 脚本中的正则表达式

正则表达式使用grep从html文件中查找外部链接

Javascript 替换在应该起作用的时候却不起作用

javascript - 消除渲染阻塞 JavaScript 和 CSS