0
我有一個textarea,它接收ALL CAPS中的輸入,這對大多數用戶來說都很好。一些用戶需要使用規範化時裝表示的文本 - 每個句子的第一個字母大寫,其餘小寫。我正在使用腳本來撤消我的文本區域中的所有大寫
我試圖改編來自其他SO線程的一些建議,但有些東西丟失了。請幫助!
身體
<form>
<input value="Select all" onclick="javascript:this.form.finaltext.focus();this.form.finaltext.select();" type="button">
<input value="Clear All" onclick="this.form.finaltext.value=''" type="button">
<input value="Normalize text" type="button" id="normalize">
<a href="#" id="copy-textarea"><input type=button value="Copy to Clipboard"></a><br>
<br>
<textarea id="finaltext" cols="80" rows="50"> </textarea>
</form>
腳本
$(window).load(function(){
$('#normalize').click(function capitalizeSentences(){
var capText = $("#finaltext").val();
capText = capText.toLowerCase();
capText = capText.replace(/\.\n/g,".[-<br>-]. ");
capText = capText.replace(/\.\s\n/g,". [-<br>-]. ");
var wordSplit = '. ';
var wordArray = capText.split(wordSplit);
var numWords = wordArray.length;
for(x=0;x<numWords;x++) {
wordArray[x] = wordArray[x].replace(wordArray[x].charAt(0),wordArray[x].charAt(0).toUpperCase());
if(x==0) {
capText = wordArray[x]+". ";
}else if(x != numWords -1){
capText = capText+wordArray[x]+". ";
}else if(x == numWords -1){
capText = capText+wordArray[x];
}
}
capText = capText.replace(/\[-<br>-\]\.\s/g,"\n");
capText = capText.replace(/\si\s/g," I ");
$("#finaltext").val(capText);
});
});
更新1現在的腳本工作。
新問題如何操作邏輯在.replace括號內爲以下情況:
文本區域我想允許「常態化」,是按以下格式:
- TEXT1
- TEXT2
- TEXT3
帶有短劃線,空格和所有帽子的文字。 .replace邏輯似乎只查找字符串中的第一個字符,但我希望它分別對待每行(以破折號開頭),並且只保留第一個字母后面的大寫。
什麼是缺失? – RyanS
對不起,當我點擊'normalize:按鈕時,沒有任何反應。我在chrome的調試器上也沒有任何錯誤。 – user1837608
在您爲其聲明事件處理程序時,DOM中的標準化按鈕是否正常?如果不是,你需要使用'on'或'委託'方法 - 例如。 '$(document).on('click','#normalize',function(){});'我不知道你的頁面名稱是什麼,否則我將命名空間事件而不是整個文檔。 – Ross