如何將每個單詞替換爲另一個單詞並保留格式,如換行符,製表符,空格字符等?如何用另一個單詞替換文本正文中的每個單詞?
我認爲解決方案可能是RegEx,但也可能需要一個函數。我也想匹配這個詞的長度。 UPDATE如果我能以某種方式獲得單詞的長度,我不需要匹配單詞的長度。請參閱本文末尾的註釋。
這是我到目前爲止在ActionScript 3中的內容。如果刪除變量的強類型,JavaScript將是相同的。
public function replaceText(content:String, token:String):String {
var words:Array = content ? content.split(/\W/g) : [];
var word:String;
var length:int = words.length;
var replacement:String;
var output:Array = [];
for (var i:int=0;i<length;i++) {
word = words[i];
if (word.length==1) {
replacement = token.charAt(0);
}
else if (word.length==2 && token.length>1) {
replacement = token.charAt(0) + token.charAt(token.length-1);
}
else if (word.length==3 && token.length>2) {
replacement = token.charAt(0) + token.charAt(1) + token.charAt(token.length-1);
}
else if (word.length==4 && token.length>3) {
replacement = token.charAt(0) + token.charAt(1) + token.charAt(2) + token.charAt(token.length-1);
}
else {
replacement = token;
}
output.push(replacement);
}
return output.join(" ");
}
這裏是輸入:
「敏捷的棕色狐狸跳過懶狗」是包含了所有的英文字母的英文 全字母短句,一個短語。它 用於顯示字體和測試打字機和計算機鍵盤, 和其他涉及英文字母中所有字母的應用程序。由於其簡潔和一致性,它已成爲廣爲人知的 。
在電腦的時代,這種普拉姆通常用於顯示字體 樣品和測試電腦鍵盤。 Microsoft Word有一個 命令,在命令= rand()以及Office 2007及更高版本中使用 command = rand.old()時,可以在Office 2003, 以上的版本中自動輸入該句子。
這是輸出。如果我進入令牌,「蜜蜂」的結果是:
蜜蜂BES蜜蜂蜜蜂BES蜜蜂蜜蜂BES蜜蜂BES蜜蜂BS BS蜜蜂蜜蜂 蜜蜂b蜜蜂蜜蜂蜜蜂BES BS BES蜜蜂BS BES蜜蜂蜜蜂BS BS蜜蜂BS 蜜蜂蜂BES BS蜜蜂蜂BES蜜蜂的蜜蜂的蜜蜂BES BS蜜蜂的蜜蜂的蜜蜂 BES BS BES蜜蜂BS BES蜜蜂的蜜蜂的蜜蜂的蜜蜂BS BES蜜蜂BES蜜蜂蜂 BS BES蜜蜂的蜜蜂的蜜蜂的蜜蜂的蜜蜂BS BES BES BS蜜蜂的蜜蜂的蜜蜂蜜蜂BS 蜜蜂蜂BS蜜蜂的蜜蜂的蜜蜂BES BES蜜蜂的蜜蜂的蜜蜂的蜜蜂的蜜蜂的蜜蜂BES b蜜蜂BS蜜蜂蜂BES蜜蜂蜂BS蜜蜂基地臺BS1的蜜蜂的蜜蜂的蜜蜂的蜜蜂 BES蜜蜂的蜜蜂的蜜蜂的蜜蜂的蜜蜂的蜜蜂BES BS蜜蜂蜂BES蜜蜂蜂bes 蜜蜂蜜蜂蜜蜂蜜蜂蜜蜂
注意格式和標點缺失。其實,所有不是一個字的東西都沒有了。我想保留所有內容,但用「蜜蜂」或我選擇的其他詞替換每個詞。
UPDATE:
其實,我可以做這樣的事情上運行一個函數與正則表達式替換?所以一個content.replace(/^\ W/g,myFunction)?
或者我能找到所有的單詞並用單詞的長度替換它們嗎?所以,「快速的棕色狐狸跳躍......」變成了「3 5 5 3 4 ...」。那麼我可以用我的字代替數字?
幹得好,先生! – 2014-10-12 03:01:46