var a="a\a\a/b" var reg=/\/g; alert(a.replace(reg,"-"));
我这段代码,最后输出的结果是aa-a/b
正则只把双反斜杠替换了,并没有替换单反斜杠,请问如何修改才能替换?
原因是因为当做转义字符,在chrome的控制台可以看到"aaa/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"
这种字符串
的反斜杆毫无意义,你可能把字符串
和文本字符
弄混了