55
A
回答
66
g
適用於全球搜索。意味着它將匹配所有事件。你通常也會看到i
這意味着忽略大小寫。
Refrence:global - JavaScript | MDN
中的「G」標誌表示正則表達式應針對字符串中的所有可能的匹配測試。
沒有g
標誌,它只會測試第一個。
10
g
是全局搜索的標誌。
全局搜索標誌使RegExp在整個字符串中搜索一個模式,創建一個匹配給定模式的所有匹配項的數組。
因此,/.+/g
和/.+/
之間的差異在於g
版本將查找每個出現的地方而不是第一個。
7
/.+/g
和/.+/
之間沒有區別,因爲它們只會匹配整個字符串一次。如果正則表達式可以匹配多次或包含組,則g
會有所不同,在這種情況下,.match()
將返回匹配數組而不是組的數組。
3
G在正則表達式中定義了一個全局搜索,這意味着它將搜索所有行上的所有實例。在Javascript
22
實施例來解釋:
> 'aaa'.match(/a/g)
[ 'a', 'a', 'a' ]
> 'aaa'.match(/a/)
[ 'a', index: 0, input: 'aaa' ]
4
除了g
標誌的已提及的意義,它影響regexp.lastIndex
屬性:
的lastIndex的是正則表達式 實例的讀/寫整數屬性它指定了開始下一場比賽的索引。 (...)僅當正則表達式實例 使用「g」標誌指示全局搜索時,纔會設置此屬性。
3
正如@matiska指出的,g
標誌設置lastIndex
屬性爲好。
這樣做的一個非常重要的副作用是,如果您針對匹配的字符串重複使用相同的正則表達式實例,它最終會失敗,因爲它只會在lastIndex
處開始搜索。
// regular regex
const regex = /foo/;
// same regex with global flag
const regexG = /foo/g;
const str = " foo foo foo ";
const test = (r) => console.log(
r,
r.lastIndex,
r.test(str),
r.lastIndex
);
// Test the normal one 4 times (success)
test(regex);
test(regex);
test(regex);
test(regex);
// Test the global one 4 times
// (3 passes and a fail)
test(regexG);
test(regexG);
test(regexG);
test(regexG);
相關問題
- 1. 「[^]」正則表達式模式的含義是什麼(javascript正則表達式)?
- 2. 正則表達式中/ gi的含義是什麼?
- 3. 你在正則表達式中的含義是什麼?
- 4. [^。] *在正則表達式中的含義是什麼?
- 5. 反斜槓在正則表達式中的含義是什麼?
- 6. 正則表達式\ S在JavaScript中的含義是什麼?
- 7. 「[[]]」在正則表達式中的含義是什麼?
- 8. JavaScript中這些正則表達式的含義是什麼?
- 9. python正則表達式中'(?i)password'的含義是什麼?
- 10. *的含義是什麼?在正則表達式中?
- 11. 在這個正則表達式中\\ +的含義是什麼?
- 12. \ d +在正則表達式中的含義是什麼?
- 13. ^符號在R正則表達式中的含義是什麼?
- 14. 正則表達式中斜槓的含義是什麼?
- 15. 「\ 3」在正則表達式中的含義是什麼?
- 16. 正則表達式中'\ G'錨的用法是什麼?
- 17. 爲什麼'g'標誌會改變JavaScript正則表達式的結果?
- 18. 正則表達式標誌
- 19. 這些正則表達式的含義是什麼?
- 20. perl正則表達式的含義是什麼?
- 21. 「\ 2」在正則表達式結尾處的含義是什麼
- 22. 這個正則表達式的含義是什麼(php)
- 23. 這個正則表達式的含義是什麼?
- 24. 什麼是(\ - 2 | 3?)的含義在正則表達式
- 25. 這個正則表達式的含義是什麼?
- 26. 這個正則表達式的含義是什麼?
- 27. 這個正則表達式的含義是什麼?
- 28. 正則表達式的正則表達式是什麼?
- 29. 什麼「?-mix:」在正則表達式中的含義
- 30. 正則表達式/[^\d|\-+|\.+]/g是什麼意思?
所以當使用。測試功能,因爲它只找到第一個匹配無論如何,右/ g標誌是無關緊要的? – xr280xr