var a="a\a\a/b" var reg=/\/g; alert(a.replace(reg,"-"));
我這段程式碼,最後輸出的結果是aa-a/b
正則只把雙反斜杠替換了,並沒有替換單反斜杠,請問如何修改才能替換?
原因是因為\當做轉義字符,在chrome的控制台可以看到"aa\a/b"最後輸出的是"aaa/b"
請問如何解決這種情況呢?
光阴似箭催人老,日月如移越少年。
反斜線「」是轉義字符,出現在字符的前面,表示一個整體,比如說"n",就表示換行符。請看下面程式碼:
var str = '\fedlab'; console.log(str.length); // 6
也就是說"f"算一個字。
console.log(/^\fedlab/.test('\fedlab')); // true
希望可以幫到你!
查了一圈資料,並沒有發現解決的方法,被當成轉義字符,是底層的實現,無法進行查找和替換,字符還是要寫成 "a\a\\a/b"才行
"a\a\\a/b"
你要用在哪一個場景呢? 不知道這種情況是不是你要的結果:
建立test.txt,內容為aa\a/b
test.txt
aa\a/b
創建test.js,下面node控制台進行一些測試和結果:
test.js
//test.js 'use strict'; var fs=require('fs') var a=fs.readFileSync(__dirname+'/test.txt').toString() var b='a\a\\a/b' console.log(a.length) //=>8 如果不是8,可能是加入了一些空格或换行符 console.log(a==b) //=>true console.log(a.replace(/\/g,'-')) //=>a-a--a/b
那麼我覺得替換var a="aa\a/b"這種字符串的反斜桿毫無意義,你可能把字符串和文本字符弄混了
var a="aa\a/b"
字符串
文本字符
反斜線「」是轉義字符,出現在字符的前面,表示一個整體,比如說"n",就表示換行符。請看下面程式碼:
也就是說"f"算一個字。
希望可以幫到你!
查了一圈資料,並沒有發現解決的方法,被當成轉義字符,是底層的實現,無法進行查找和替換,字符還是要寫成
"a\a\\a/b"
才行你要用在哪一個場景呢? 不知道這種情況是不是你要的結果:
建立
test.txt
,內容為aa\a/b
創建
test.js
,下面node控制台進行一些測試和結果:那麼我覺得替換
var a="aa\a/b"
這種字符串
的反斜桿毫無意義,你可能把字符串
和文本字符
弄混了