2011-06-04 21 views
0

我得到這個值從DatePicker的的Javascript空間

var datepickr = 'Jun-29-2011'; 

我想替換下劃線代替hypens。

我試過這種方法,但它不工作

var b = datepickr.replace("-",' '); 
+1

什麼是「不工作」是什麼意思?另外,'-'是連字符,而不是下劃線。看看維基百科的許多關於標點符號的文章。 – 2011-06-04 01:30:46

回答

2

.replace應該採取一個正則表達式:

var b = datepickr.replace(/-/g,' '); 

我會離開它作爲一個練習讀者研究正則表達式完整。

(這裏最重要的一點,雖然是標誌/g全局搜索

-2

嘗試:

var b = datepickr.toString().replace("-",' '); 

我懷疑你試圖取代Date對象中字符。

+0

'datepickr'已經是一個字符串了。該定義甚至在問題中。 – 2011-06-04 01:33:20

+0

當用字符串(或不帶/ g修飾符的正則表達式)提供時,'replace'只替換它找到的** first **實例。 – brymck 2011-06-04 01:35:05

+0

他說他從Datepicker那裏獲得了這個價值,它也可能是一個約會。 – 2011-06-04 01:35:57

0

replace作品正則表達式,像這樣:

> "Hello-World-Hi".replace(/-/g, " ") 
Hello World Hi 
+0

好吧,現在嘗試使用「Hello-Wor-ld」:P – 2011-06-04 01:33:33

+0

非常感謝 – Kiran 2011-06-04 01:35:36

0
var b = 'Jun-29-2011'.replace(/-/g, ' '); 

或者:

var b = 'Jun-29-2011'.split('-').join(' '); 
1

試試這個:

var datepickr = 'Jun-29-2011'; 
var b = datepickr.replace(/-/g, ' '); 

/g導致它來代替每個-,不只是第一個。

3

僅供參考:

var datepickr = 'Jun-29-2011'; 
datepickr.replace("-", " "); // returns "Jun 29-2011" 
datepickr.replace(/-/, " "); // returns "Jun 29-2011" 
datepickr.replace(/-/g, " "); // returns "Jun 29 2011" (yay!) 

的差異是全球改性劑/g,從而導致替代搜索爲全部爲實例。還要注意,-必須轉義爲\-,它也可以用來表示一個範圍。例如,/[a-z]/g可以匹配所有小寫字母,而/[a\-z]/g可以匹配所有a,z和破折號。在這種情況下,它是毫不含糊的,但值得注意。

編輯

只要你知道,你可以做一個行沒有正則表達式,它只是赫然不可讀:

while (str !== (str = str.replace("-", " "))) { }