首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >数组排序:字母排序和数字排序

数组排序:字母排序和数字排序
EN

Stack Overflow用户
提问于 2014-09-24 20:04:00
回答 1查看 1.5K关注 0票数 0

我想要一个有文本框的网页。文本框下面有两个按钮,表示“按字母顺序排序”和“数字排序”。我想这样,无论用户在框中输入什么,它都会排序。如果用户输入数字和字母,它将取消排序,并弹出一个警报,表示“不能是字母和数字”。当单击“排序字母”按钮时,JavaScript代码将按字母顺序激活和排序单词。“排序数字”按钮也是如此。我似乎无法把单词/数字排序。

HTML:

代码语言:javascript
复制
<html>
<head>
<title>Sorter</title>
<script type="text/javascript" src="sorter.js"></script>
</head>
<body>
<form>
Words/Numbers to Be Sorted:<input type="text" id="textbox" size="35"/>
<br/>
<button type="button" onclick="sortAbc()">Sort Alphabetically</button>
<button type="button" onclick="sortNumber()">Sort Numerically</button>
<br/>
<h1>Each number/word shall be separated by a space.</h1>
</form>
</body>
</html>

JavaScript:

代码语言:javascript
复制
function sortAbc() {
var captureText = document.getElementById('textbox');
captureText.sort();
//Help! How to make alert pop up when numbers and letters are typed?
}

function sortNumber() {
var captureNumb = document.getElementByid('textbox');
captureNumb.sort(function(a, b){return a-b});
//Same problem here! How to make alert pop up when numbers and letters are typed?
}
EN

回答 1

Stack Overflow用户

发布于 2014-09-24 20:21:03

这是一个完整的活样本。

  • 使用正则表达式(.match)检查数字或单词
  • 使用数组函数sort

代码语言:javascript
复制
function sortAbc() {
   var captureText = document.getElementById('textbox');
   if (captureText.value.match(/(?:^| )[\d]+(?: |$)/)) {
     alert("no digits");
     return;
   }
   var words = captureText.value.split(" ");
   captureText.value = words.sort().join(" ");
}

function sortNumber() {
   var captureNumb = document.getElementById('textbox');
   if (captureNumb.value.match(/[^\s\d]/)) {
     alert("no letters");
     return;
   }
   var numbers = captureNumb.value.split(" ");
   captureNumb.value = numbers.sort(function (a, b) { return a - b }).join(" ");
}
代码语言:javascript
复制
<html>
<head>
<title>Sorter</title>
<script type="text/javascript" src="sorter.js"></script>
</head>
<body>
<form>
Words/Numbers to Be Sorted:<input type="text" id="textbox" size="35"/>
<br/>
<button type="button" onclick="sortAbc()">Sort Alphabetically</button>
<button type="button" onclick="sortNumber()">Sort Numerically</button>
<br/>
<h1>Each number/word shall be separated by a space.</h1>
</form>
</body>
</html>

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26025516

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档