suchen

Heim  >  Fragen und Antworten  >  Hauptteil

So ersetzen Sie einen einzelnen Backslash durch einen regulären in js

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

Mein Code, das endgültige Ausgabeergebnis ist aa-a/b

Der reguläre Ausdruck ersetzt nur doppelte Backslashes, nicht jedoch einzelne Backslashes. Wie kann ich ihn ändern, um ihn zu ersetzen?

Der Grund dafür ist, dass Sie als Escape-Zeichen in der Chrome-Konsole sehen können, dass „aaa/b“ letztendlich als „aaa/b“ ausgegeben wird

Wie kann man diese Situation lösen?

大家讲道理大家讲道理2727 Tage vor999

Antworte allen(3)Ich werde antworten

  • 学习ing

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

    反斜杠“”是转义字符,出现在字符的前面,表示一个整体,比如说"n",就表示换行符。见下面代码:

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

    也就是说"f"算一个字符。

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

    希望可以帮到你!

    Antwort
    0
  • 三叔

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

    查了一圈资料,并没有发现解决的方法,被当成转义字符,是底层的实现,无法进行查找和替换,字符还是要写成 "a\\a\\\\a/b"才行

    Antwort
    0
  • phpcn_u1582

    phpcn_u15822017-06-12 09:33:16

    你要用于哪种场景呢? 不知道这种情况是不是你要的结果:

    1. 创建test.txt,内容为a\a\\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="a\a\\a/b"这种字符串的反斜杆毫无意义,你可能把字符串文本字符弄混了

    Antwort
    0
  • StornierenAntwort