如何从文本中删除空格,标点符号和符号

时间:2019-06-21 20:42:54

标签: javascript html

我正在构建一个应用程序,因此必须对输入字符串进行一些转换。我需要删除空格,标点符号,并使所有内容都变小写。尝试测试时没有任何输出。

此外,我需要确保输入框中输入多个单词,并且至少输入60个字符。

const text = document.querySelector('#normalized_text');
const string = document.querySelector('#message');

function encodeMessage() {
  let newMessage = string.replace(/[^a-zA-Z0-9]/g, "").toLowerCase();
  console.log(newMessage);
  text.innerHTML = newMessage;
  return newMessage;
}
<form>
  <input type="text" placeholder="Type your secret message" id="message">
</form>
<button type="submit" class="button" onclick="encodeMessage()">Encode message</button>
<div class="box">
  <h3>Normalised Text</h3>
  <p id="normalized_text"></p>
</div>

2 个答案:

答案 0 :(得分:1)

当前,您不是要替换对象“字符串”的值,而是要替换对象。如果您检查开发人员控制台,则会发现错误消息。我建议在创建网页时尽可能使用开发者控制台(通过检查元素),因为它可以在脚本中显示错误。

您应该将JavaScript代码更改为以下内容:

const text = document.querySelector('#normalized_text');
const string = document.querySelector('#message');

function encodeMessage() {
  let newMessage = string.value.replace(/[^a-zA-Z0-9]/g, "").toLowerCase();
  text.innerHTML = newMessage;
  return newMessage;
}

答案 1 :(得分:0)

这里有几个问题:

1-正如@epascarello所指出的那样,您的按钮属于Submit类型,默认情况下会刷新页面。在这种情况下,我们不希望这样,只需将您的按钮设为按钮类型即可。

2-您正在尝试操纵对象sdcard/Documents/,而不是它的值!尝试改为使用string

关于字数检查,您可以将字符串除以空格字符并检查结果数组的长度。

string.value
const text = document.querySelector('#normalized_text');
const str = document.querySelector('#message');

function encodeMessage() {
  var message = str.value;
  if(getWordCount(message) < 2 || message.length < 60) {
    console.log("Invalid message.");
    return null;
  }
  let newMessage = str.value.replace(/[^a-zA-Z0-9]/g, "").toLowerCase();
  console.log(newMessage);
  text.innerHTML = newMessage;
  return newMessage;
}

//gets word count of a string
function getWordCount(s) {
  return s.split(" ").length;
}