我想使用单个输入框来搜索索引(0,1,等等)或完整哈希。下面的正则表达式工作正常,但如果我有一个有效的哈希并按索引搜索,反之亦然,结果不是我想要的。没有两个输入,有没有更好的方法来解决这个问题?理想情况下,我希望在匹配一个模式时禁用按钮2,如果匹配另一个模式则禁用按钮1并将我的正则表达式分成两个不同的模式。这可能吗?我的方法是否合情合理?
<div class="form-group">
<input type="text"
class="form-control"
placeholder="Search by..."
name="query" ng-model="query"
ng-pattern="/^[0-9a-fA-F]{64}$|^\d+$/"
required>
</div>
<button type="submit"
class="btn btn-default"
ng-click="searchBar.$valid && searchByHash()">
Hash</button>
<button type="submit"
class="btn btn-default"
ng-click="searchBar.$valid && searchByHeight()">
Height</button>