我有以下字串:
fx:66f48309_06cc_44a6_8752_7b53d88a6be3 < 7 && fx:66f48309_06cc_44a6_8752_7b53d88a6be3 > 1
fx:66f48309_06cc_44a6_8752_7b53d88a6be3 == 10
我想匹配和檢索66f48309_06cc_44a6_8752_7b53d88a6be3字串。它基本上是由下劃線分隔的 uuid。我嘗試了以下代碼:
let expression = "fx:66f48309_06cc_44a6_8752_7b53d88a6be3 < 7 && fx:66f48309_06cc_44a6_8752_7b53d88a6be3 > 1";
const v4 = new RegExp(/^[0-9A-F]{8}_[0-9A-F]{4}_4[0-9A-F]{3}_[89AB][0-9A-F]{3}_[0-9A-F]{12}$/i);
console.log(expression.match(v4));
但它回傳空值。任何人都可以請建議。
謝謝
uj5u.com熱心網友回復:
你有兩個字符^和$你的正則運算式,它們分別匹配字串的開頭和結尾。您的文本以 開頭,fx:因此它不起作用。如果洗掉這些字符,您將得到預期的結果:
const expression = "fx:66f48309_06cc_44a6_8752_7b53d88a6be3 < 7 && fx:66f48309_06cc_44a6_8752_7b53d88a6be3 > 1";
const v4 = new RegExp(/[0-9A-F]{8}_[0-9A-F]{4}_4[0-9A-F]{3}_[89AB][0-9A-F]{3}_[0-9A-F]{12}/i);
console.log(expression.match(v4));
uj5u.com熱心網友回復:
問題似乎是您使用^and $,前者強制您的 uuid-underscores 格式從字串的開頭開始(它沒有:“fx:”部分不匹配),后者您的 uuid_underscores 位于字串的最末尾(它不是:例如,空格會破壞模式)。
一個可能的解決方法是:
const v4 = /[0-9A-F]{8}_[0-9A-F]{4}_4[0-9A-F]{3}_[89AB][0-9A-F]{3}_[0-9A-F]{12}/i;
這是否滿足您的要求或需要進一步改進取決于背景關系,但它應該可以解決您提供的字串的問題。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/394548.html
標籤:javascript 正则表达式
上一篇:我不能洗掉生成的元素
