搜尋

首頁  >  問答  >  主體

javascript - js中如何用正規取代單一反斜杠

var a="a\a\a/b"
var reg=/\/g;
alert(a.replace(reg,"-"));

我這段程式碼,最後輸出的結果是aa-a/b

正則只把雙反斜杠替換了,並沒有替換單反斜杠,請問如何修改才能替換?

原因是因為\當做轉義字符,在chrome的控制台可以看到"aa\a/b"最後輸出的是"aaa/b"

請問如何解決這種情況呢?

大家讲道理大家讲道理2768 天前1014

全部回覆(3)我來回復

  • 学习ing

    学习ing2017-06-12 09:33:16

    反斜線「」是轉義字符,出現在字符的前面,表示一個整體,比如說"n",就表示換行符。請看下面程式碼:

    var str = '\fedlab';
    console.log(str.length); // 6

    也就是說"f"算一個字。

    console.log(/^\fedlab/.test('\fedlab')); // true

    希望可以幫到你!

    回覆
    0
  • 三叔

    三叔2017-06-12 09:33:16

    查了一圈資料,並沒有發現解決的方法,被當成轉義字符,是底層的實現,無法進行查找和替換,字符還是要寫成 "a\a\\a/b"才行

    回覆
    0
  • phpcn_u1582

    phpcn_u15822017-06-12 09:33:16

    你要用在哪一個場景呢? 不知道這種情況是不是你要的結果:

    1. 建立test.txt,內容為aa\a/b

    2. 創建test.js,下面node控制台進行一些測試和結果:

      //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"這種字符串的反斜桿毫無意義,你可能把字符串文本字符弄混了

    回覆
    0
  • 取消回覆