简单模式有许多种表示方式,复杂模式的表示方式更是多得可怕。啊哈,你可能看到了,浪费这么多时间写一个正则表达式真是个错误。我们忘了去搞清楚:实际问题到底是什么?搞懂了这个可以解决一半的问题。现在问问自己:“我有一个字符串,想检查它是否是一个点分十进制的IPV4地址,我得写一个正则表达式!嘿,谁能帮我写一下?”
真正的问题不是“我怎么写一个识别点分十进制IPV4地址的正则表达式”,而是“我怎么识别一个点分十进制IPV4地址”。头脑里思考这个更大的目标,你会发现逼你自己写一个正则表达式纯粹是自寻烦恼。
来看看下面的函数:
function isDottedIPv4(s) { var match = s.match(/^(\d+)\.(\d+)\.(\d+)\.(\d+)$/); return match != null && match[1]