2013-04-17 38 views
0

我已經看過以前提到的所有問題,但它並沒有幫助我。我有一個包含反斜槓的字符串,我想,以取代反斜線「 - 」將''替換爲字符串中的' - '

var s="adbc\sjhf\fkjfh\af"; 
s = s.replace(/\\/g,'-'); 
alert(s); 

我認爲這是做出來,當然我錯了,正確的方法,因爲在警戒它顯示adbcsjhffkjfhaf,但我需要它就像adbc-sjhf-fkjfh-af

我在這裏做了什麼錯誤,它是什麼原因以及如何實現這個......?

Working JS Fiddle

回答

11

s最初adbcsjhffkjfhaf。你的意思是

var s="adbc\\sjhf\\fkjfh\\af"; 
+0

http://jsfiddle.net/GHBV8/1/ – Gareth

+0

當我使用該字符串的一些它需要它作爲'adbcsjhffkjfhaf'或'adbc \ sjhf \ fkjfh \ af' –

+0

它確實有一個不可見的表單提要('\ f')和一個響鈴('\ a'),但沒有反斜槓。你在說什麼操作? –

3

您需要翻倍的反斜槓在你輸入字符串:

var s="adbc\\sjhf\\fkjfh\\af"; 

在一個字符串,前綴字符用「\」賦予特殊意義的是字符(如'\t'手段一個製表符)。如果你想真正在您的字符串「\」你必須用另一個反斜槓轉義:'\\'

+0

當我使用該字符串進行某些操作時,它將其視爲'adbcsjhffkjfhaf'或'adbc \ sjhf \ fkjfh \ af'..? –

2

JavaScript是忽略了\\s\f\a在您的字符串。分配後做一個console.log(s),你會明白。

您需要跳過\\\。像:"adbc\\sjhf\\fkjfh\\af"

+0

當我使用該字符串進行某些操作時,它將其作爲'adbcsjhffkjfhaf'或'adbc \ sjhf \ fkjfh \ af'..? –

1

該字符串不包含反斜槓,它包含\ a,\ s和\ f(換行符爲換頁符)。

,如果你改變你的字符串adbc\\sjhf\\fkjfh\\af

var s="adbc\\sjhf\\fkjfh\\af"; 
s = s.replace(/\\/g,'-'); 
alert(s); 

,你將能夠取代它-