我有一個過濾器有一個字段,可讓您輸入逗號分隔的ID列表或一系列ID。例如,「1,2,3」和「4-9」是有效的ID。我爲此寫了以下正則表達式:以逗號分隔的ID和範圍的正則表達式
/(^\d+(?:[,]\d+)*$)|(^\d+-\d+$)/.test(str)
其中str是我正在評估的字符串。這工作正常,並返回所有場景的正確布爾值,除非在一個範圍內,第一個ID大於第二個。例如,12-10是一個無效範圍,但上面的正則表達式不返回false。
有沒有辦法驗證使用正則表達式呢?我明顯可以將字符串拆分爲' - '並比較這兩個部分,但會失去正則表達式提供的簡潔性。