javascript - 简洁地表达复杂的正则表达式

标签 javascript regex

有什么方法可以更简洁地编写这个简单的正则表达式吗? (这里我使用单独的行来提高可读性,尽管我通常不会使用它们)

(
(regex (matches|corresponds to) string)
|
(string (matches|corresponds to) regex)
)

“string”和“regex”在这里互换了,我想表达的简洁一点。我想避免多次写入(匹配|对应)。

最佳答案

我唯一能想到的是动态创建它而不是使用文字:

function or(){return "("+Array.prototype.join.call(arguments,"|")+")";}
var bidi = ["matches", or("regex", "string"), "corresponds to"];
return new RegExp(or(bidi.join(" "), bidi.reverse().join(" ")));

关于javascript - 简洁地表达复杂的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11466341/

相关文章:

javascript - 结合拖放js例子

javascript - jQuery jCarousel - 外部控件高亮(包装: circular) + randomize slides

python - 带有等号和换行符的字符串的正则表达式

php - Twig/PHP - 使用 Replace 或 Regex 格式化字符串

javascript - 基于验证将元素推送到对象

javascript - 尝试使用 ASP 隐藏值和 javascript 禁用 CSS 按钮

javascript - 仅当鼠标水平移动多于垂直移动时才允许 jQuery UI 拖动

regex - R:使用 grep/gsub 查找重复模式

Mysql正则表达式查找固定长度的单词

java - 从文件中读取模式与字符串文字