我們處理很多UGC(1m +/mo),有時候我們的用戶會輸入一些沒有空格的大字符串,導致網頁瀏覽器以奇怪的方式顯示內容,在這裏和那裏破壞UI。什麼是從後端插入<wbr />標籤的最佳方式
我試圖找到一種方法來智能快速處理文本高達50k並在適當的地方插入標籤。
我已經建立了這個,但JVM似乎在大字符串(大約20K它扼流圈某處),所以我想用Perl腳本做修改,並從Java調用它,但我不知道如何編寫Perl :(
是否有這樣做的任何圖書館了嗎?有沒有人遇到這個問題?
我們處理很多UGC(1m +/mo),有時候我們的用戶會輸入一些沒有空格的大字符串,導致網頁瀏覽器以奇怪的方式顯示內容,在這裏和那裏破壞UI。什麼是從後端插入<wbr />標籤的最佳方式
我試圖找到一種方法來智能快速處理文本高達50k並在適當的地方插入標籤。
我已經建立了這個,但JVM似乎在大字符串(大約20K它扼流圈某處),所以我想用Perl腳本做修改,並從Java調用它,但我不知道如何編寫Perl :(
是否有這樣做的任何圖書館了嗎?有沒有人遇到這個問題?
你說的「電抗器」是什麼意思?時間過長?拋出一個異常?
無論如何,20K不算什麼;問題很可能出現在你的代碼中,如果y你會得到一個異常(或JVM崩潰),你能發佈一個適當的堆棧跟蹤嗎?如果時間太長,你是否描述它?你可以發佈結果嗎?看到一些源代碼也會有所幫助。
您正在使用StringBuffer和/或StringBuilder,而不是直接操縱字符串,對嗎?
TIMTOWDI用Perl,但我喜歡:
$newstring;
$string = $incrediblylongstring;
for($i=0;$i<length($string);$i+100){
$rest = substr($string, $i, 100);
$newstring .= '<br />'.$rest;
}
但是,你也可以有一個更直觀的編輯器,允許客戶把自己進入用JavaScript。僞代碼是當編輯器有焦點時,捕獲輸入以插入<br />
。在輸入的單詞後面輸入
請參閱。 :d
#!/usr/bin/perl
use strict;
use warnings;
my $long_string = join ' ', map { 'a' x rand 20_000 } 1 .. 100;
# adjust 40 according to taste
$long_string =~ s{(\S{40})}{$1<wbr/>}g;
print $long_string, "\n";
整個大約需要0.25
秒做所有的換人爲約1,000,000
字符串。
''不是'
':http://www.quirksmode.org/oddsandends/wbr.html – 2009-10-23 18:53:07
糟糕。只是表明我並不知道一切。儘管如此,Perlcode仍然適用,但我知道有人會提出一個線上或幾乎一個班輪 – 2009-10-24 17:37:26