回答
兩個評價是完全相同的正則表達式,但首先是一個文字,這意味着你不能使用它裏面的任何變量,你不能動態生成一個正則表達式。
第二個顯式使用構造函數,可用於創建動態正則表達式。
var x = '3', r = (new RegExp(x + '\d')); r.test('3d')
以上是使用構造函數動態構造正則表達式的示例,您無法以字面形式進行操作。
在99%的情況下,您將只依賴JS的所有正則表達式的第一個版本(文字)。在你需要說的高級場景中,用戶輸入動態地構造一個正則表達式,然後你需要第二種形式。
編輯#1:第一個匹配一個數字,第二個匹配字母d
。爲了讓它等於第一個,我們假設你打算這樣做,你必須加倍逃避第二個。請記住,如果第二個示例是新的RegExp('\ d'),我上面輸入的建議是準確的。
/\d/.test('3') // true
(new RegExp('\d')).test('3') // false
(new RegExp('\\d')).test('3') // true
爾,正則表達式'3 \ D'不匹配' 「3D」'... – Amber 2010-12-20 20:51:20
感謝您的交代,我問的原因是我有這個表達式/^+ | [\\ /#;] | + $/gi(1或更多空格或包含\ /#;或以一個或多個空格結尾)。在每個奇數時間使用非構造函數時,結果都是錯誤的。例如。結果是交替的。當使用構造函數時,每次都按預期工作。奇怪! – bob 2010-12-20 20:55:28
還有另一個區別:文字只在* parse時間創建* one *對象*而構造函數總是創建一個新對象。這將在ES5中進行更改,並且文字也將始終返回一個新對象。 – 2010-12-20 21:29:50
- 1. 正則表達式差異
- 2. javascript正則表達式和swift正則表達式之間的差異
- 3. Go的差異正則表達式
- 4. PHP的正則表達式差異
- 5. js正則表達式的差異
- 6. JavaScript和Java之間的正則表達式模式的差異?
- 7. 差異的JavaScript之間的兩個正則表達式中
- 8. 正則表達式驗證差異
- 9. [af]?lex正則表達式差異
- 10. 兩個正則表達式JavaScript書籤之間的差異
- 11. 標準正則表達式與python正則表達式的差異
- 12. PHP的正則表達式的JavaScript正則表達式
- 13. Javascript正則表達式測試怪異
- 14. 的Javascript正則表達式
- 15. JavaScript的正則表達式
- 16. JavaScript的正則表達式?
- 17. Javascript的正則表達式
- 18. javascript的正則表達式
- 19. 正則表達式模式的差異 - 「*」 和 「+」
- 20. 正則表達式在javascript - 正則表達式中的變量
- 21. Firefox正則表達式中的Javascript正則表達式
- 22. JavaScript中的正則表達式(正則表達式)
- 23. PHP + JAVASCRIPT GET正則表達式的URL正則表達式
- 24. 的Javascript正則表達式 - 如何基於正則表達式
- 25. 使用正則表達式的Javascript正則表達式匹配
- 26. *之間的差異*在正則表達式中的Java
- 27. 在Python和Java中的正則表達式語法差異
- 28. Java和Android的正則表達式差異
- 29. 差異之間的兩個正則表達式
- 30. \ w和[a-zA-Z]之間的Java正則表達式差異
關於11個字符 – epascarello 2010-12-20 22:08:17