我正在使用脚本来撤消文本区域中的所有CAPS

我有一个textarea接收ALL CAPS中的输入,这对大多数用户来说都很好。 一些用户需要在规范化的时尚中表示的文本 – 每个句子的第一个字母大写,其余的小写。

我尝试从其他SO线程中调整一些建议,但缺少一些东西。 请帮忙!

身体



脚本

 $(window).load(function(){ $('#normalize').click(function capitalizeSentences(){ var capText = $("#finaltext").val(); capText = capText.toLowerCase(); capText = capText.replace(/\.\n/g,".[-
-]. "); capText = capText.replace(/\.\s\n/g,". [-
-]. "); 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(/\[-
-\]\.\s/g,"\n"); capText = capText.replace(/\si\s/g," I "); $("#finaltext").val(capText); }); });

更新1现在脚本工作。

新问题如何在以下情况下操作.replace括号中的逻辑:

我想允许“规范化”的文本区域采用以下格式:

  • TEXT1
  • TEXT2
  • TEXT3

带有破折号,空格和所有大写字母。 .replace逻辑似乎只查找字符串中的第一个字符,但我希望它分别处理每一行(从破折号开始),然后只留下大写的第一个字母。

我正在采取以下建议并发布解决了我的点击问题的更正代码 – 感谢Ross:

我需要将我的脚本包装在window.load函数中,以便在渲染后将函数包含在DOM中。

 $(window).load(function(){ ...script... }));