2012-11-03 41 views
0

當我將以下內容粘貼到文本區域時,當onblur應該整理粘貼的文本時,刪除某些單詞,標籤空格並將每個值分隔通過製表符空格到它自己的行中。但它總是在第一行留下空白空行:使用Javascript替換方法無法刪除textarea中的空行換行

注意:我似乎無法模擬html中的製表符空格,因此您必須在記事本中手動輸入以下內容才能正確地複製我的問題:其中,%%%在記事本選項卡空格替換然後全選,複製/粘貼到我js fiddle example textarea的

Customer account %%% Name %%% Telephone %%% Street name %%% City %%% postcode%%% 1234LA3 %%% KCI ASDFGHJ %%% 1234567890 %%% 10 EXAMPLE ST %%% EXAMPLE CITY %%% 1234  

當你的onblur 它結束了看起來像這樣:

 

1234LA3 
KCI ASDFGHJ 
1234567890 
10 EXAMPLE ST 
EXAMPLE CITY 
1234

注意'1234LA3'上方的空白空白處。

我已經嘗試在我的.replace()方法中添加\ n \ r,但仍似乎沒有過濾掉這條空行。

任何形式的幫助將不勝感激。謝謝!

+0

你說onblur ...這就是dblclick。你真的應該將你的javascript分離成一個你在元素的內聯事件處理程序中調用的函數......更容易管理和重用。 – Ian

+0

您可以使用只是「\ n」,如:http://jsfiddle.net/3PSzj/1/ –

+0

我試過,但像戴達利斯它只是在文本上方創建更多的空行.. –

回答

3
value=value.replace(/^(\r\n)|(\n)/,''); 

似乎要做的伎倆。

DEMO

此外,您還可以在HTML模仿製表符與	,更何況,你不需要在事件前綴JavaScript和javascript:

+0

似乎不適用於我的其他代碼。似乎只是創建更多的空行而不是刪除它。 –

+0

@ like-a-trainee我將演示更改爲更新的演示。請改爲參閱。 – Daedalus

+0

@ like-a-trainee您使用的是什麼瀏覽器?以上是在IE9,Firefox和Chrome上測試的。 – Daedalus

0

一個正則表達式將工作像這樣,如果你要採用這種方式:

str.replace(/^$/m, ''); 

是?有人理智檢查這個給我嗎?

+0

這也沒有工作。與Set Sail Media和Daedulus的建議相同。仍然得到'1234LA3' –

2

或者只是添加\ t後的第一個替換:

value=value.replace(/(Customer account\t|Name\t|Street name\t|Telephone\t|City\t|postcode\t|Extension\t)/g,''); 

問題就出現了,因爲你有最後的冠軍之後,一個標籤。

+0

之上的差距,我的例子中錯過了一些東西。在郵政編碼後,該標籤後有一個新的換行符。你的代碼似乎可行,但我仍然看到上面有一個空白,似乎有隱藏的東西我看不到。但我懷疑這是因爲郵政編碼後出現新的換行符。這就是爲什麼我在我的最後仍然存在差距。 –

+0

謝謝你的解決方案完美結合Daedulus線刪除方法。我只是將它添加到onDblClick =事件。像這樣:onDblclick =「value = value.replace(/(Customer account \ t | Name \ t | Street name \ t | Telephone \ t | City \ t | postcode \ t | Extension \ t)/ g,'') ;值= value.replace(/ \噸/克, '\ r');值= value.replace(/ [\ n \ R](\ w)的/ GI, ''?!);值= value.replace (/ ^(\ r \ n)的|(\ N)/, '');」 –

+0

歡迎您=) 有時候更好地解決問題而不是症狀。 – Manatax