[英]How do I split a value using the split function from javascript to split checking only the first and last occurence
所以我需要拆分來自我的數據庫的正則表達式。 該值如下所示
regexValue = '/^([0-9]{3}\.?[0-9]{3}\.?[0-9]{3}\-?[0-9]{2}|[0-9]{2}\.?[0-9]{3}\.?[0-9]{3}\/?[0-9]{4}\-?[0-9]{2})$/ig'
如果你徹底分析這個正則表達式,你會發現它在正則表達式之間有一個正斜杠“/”。 所以如果我想拆分它,使用
values.split('/');
它會生成比我想要的更多的字符串。 例如一個簡單的正則表達式
//would generate three values("", \w+ , ig)
regexValue = '/\w+/ig'
regexValue.split('/');
有沒有辦法讓我只能分開獲取第一個和最后一個值?
如果您想將該字符串拆分為正則表達式主體及其標志,您可以使用...一個正則表達式輕松完成。 😃
const parts = /^\s*\/(.*)\/(?:([a-z]*))\s*$/.exec(regexString);
// A ^
// B ^^^
// C ^^
// D ^^^^
// E ^^
// F ^^^^^^^^^^^^
// G ^^^
// H ^
現場示例:
const regexString = '/^([0-9]{3}\\\\.?[0-9]{3}\\\\.?[0-9]{3}\\\\-?[0-9]{2}|[0-9]{2}\\\\.?[0-9]{3}\\\\.?[0-9]{3}\\\\/?[0-9]{4}\\\\-?[0-9]{2})$/ig'; const parts = /^\\s*\\/(.*)\\/(?:([az]*))\\s*$/.exec(regexString); if (!parts) { console.log("No match"); } else { const [, body, flags] = parts; console.log(`body: ${body}`); console.log(`flags: ${flags}`); }
請注意,我對字符串文字中的反斜杠進行了轉義,因為您說您是從數據庫中讀取的,所以您的代碼中沒有將其包含在字符串文字中。 只是在字符串文字中,反斜杠是轉義字符,所以\\.
和.
意思完全一樣。 要編寫定義帶有反斜杠的字符串的字符串文字,您必須像我在上面的代碼片段中所做的那樣對它們進行轉義。 同樣,你已經說過它來自你的數據庫,所以你很好,但我想我應該在例子中避開它們以避免誤導。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.