首页 > 解决方案 > 如何在 JavaScript 中使用两个按钮大写和句子大小写

问题描述

我有两个按钮,一个用于大写字母,另一个用于句子大小写,但大写字母按钮不起作用。我的代码如下。我究竟做错了什么?

function firstLetterUpper(theString) {
  var newString = theString.toLowerCase().replace(/([a-z]+)|([A-Z]+)/g, function(c) {
    return c.toUpperCase()
  });
  return newString;
}

function convertToSentenceCase() {
  var theString = document.testForm.theString.value;
  //alert(theString);
  var newString = firstLetterUpper(theString);
  //console.log("Converted: "+newString);
  document.getElementById('theString').value = newString;
}


function firstLetterUpper(theString) {
  var newString = theString.toLowerCase().replace(/(^\s*\w|[\.\!\?]\s*\w)/g, function(c) {
    return c.toUpperCase()
  });
  return newString;
}

function convertToSentenceCase1() {
  var theString = document.testForm.theString.value;
  //alert(theString);
  var newString = firstLetterUpper(theString);
  //console.log("Converted: "+newString);
  document.getElementById('theString').value = newString;
}
<form name="testForm">
  <textarea name="theString" id="theString" cols="50" rows="5">converts text string to "sentence case" -- capitalizes the first letter of every sentence, and makes the rest lower case. helpful when you need to convert content that is in all caps.</textarea><br>
  <button onclick="convertToSentenceCase();return false;">Convert to Sentence Case</button>

  <button onclick="convertToSentenceCase1();return false;">Convert to Upper Case</button>
</form>

标签: javascript

解决方案


您的两个函数具有相同的名称firstLetterUpper

function firstLetterUpper(theString) {
  var newString = theString.toLowerCase().replace(/([a-z]+)|([A-Z]+)/g, function(c) {
    return c.toUpperCase()
  });
  return newString;
}

function convertToSentenceCase() {
  var theString = document.testForm.theString.value;
  //alert(theString);
  var newString = firstLetterUpper(theString);
  //console.log("Converted: "+newString);
  document.getElementById('theString').value = newString;
}


function firstLetterUpper1(theString) {
  var newString = theString.toLowerCase().replace(/(^\s*\w|[\.\!\?]\s*\w)/g, function(c) {
    return c.toUpperCase()
  });
  return newString;
}

function convertToSentenceCase1() {
  var theString = document.testForm.theString.value;
  //alert(theString);
  var newString = firstLetterUpper1(theString);
  //console.log("Converted: "+newString);
  document.getElementById('theString').value = newString;
}
<form name="testForm">
  <textarea name="theString" id="theString" cols="50" rows="5">converts text string to "sentence case" -- capitalizes the first letter of every sentence, and makes the rest lower case. helpful when you need to convert content that is in all caps.</textarea><br>
  <button onclick="convertToSentenceCase();return false;">Convert to Sentence Case</button>

  <button onclick="convertToSentenceCase1();return false;">Convert to Upper Case</button>
</form>


推荐阅读