我正在寻找对包含数字和文本以及它们的组合的数组进行排序的最简单方法。
例如
'123asd'
'19asd'
'12345asd'
'asd123'
'asd12'
变成
'19asd'
'123asd'
'12345asd'
'asd12'
'asd123'
这将与我在这里提出的另一个问题的解决方案结合使用。
排序功能本身可以工作,我需要的功能是可以说‘19asd’小于‘123asd’。
我用JavaScript编写。
编辑:正如adormitu所指出的,我正在寻找的是用于自然排序的函数
现在,这在使用localeCompare的现代浏览器中成为可能。通过传递numeric: true
选项,它将智能识别数字。您可以使用进行不区分大小写的操作sensitivity: 'base'
。已在Chrome,Firefox和IE11中测试。
这是一个例子。返回1
,表示10之后是2:
'10'.localeCompare('2', undefined, {numeric: true, sensitivity: 'base'})
为了提高排序大量字符串时的性能,本文说:
比较大量字符串时,例如在对大型数组进行排序时,最好创建一个Intl.Collator对象,并使用其compare属性提供的功能。文件连结
var collator = new Intl.Collator(undefined, {numeric: true, sensitivity: 'base'});
var myArray = ['1_Document', '11_Document', '2_Document'];
console.log(myArray.sort(collator.compare));
问题内容: 在JavaScript中生成随机的字母数字(大写,小写和数字)字符串以用作可能唯一的标识符的最短方法(在合理范围内)是什么? 问题答案: 如果只想允许特定字符,也可以这样: 另一种方法是使用特殊的字符串,该字符串告诉函数使用什么类型的字符。您可以这样做: 另外,要使用如下所述的base36方法,您可以执行以下操作:
问题内容: Python newb在这里。我试图计算给定字符串中字母“ a”的数量。代码如下。它会继续在字符串“ banana”中返回1而不是3。任何输入表示赞赏。 问题答案: 其他答案表明您的代码出了什么问题。但是,如果您不只是为了锻炼,还可以通过内置的方式进行此操作: Danben给出了以下更正版本: 还有其他一些方法,希望它们能教给您更多关于Python的知识! 类似,但循环更短。利用了布尔
问题内容: 我想将以下字符串转换为提供的输出。 我还没有发现,将处理特殊字符,如任何解决方案,,,等。 基本上,我只是想摆脱所有不是字母数字的东西。这是我尝试过的… 尝试多个步骤 结果 任何帮助,将不胜感激。 工作解决方案: 问题答案: 删除非字母数字字符 以下是/正确的正则表达式,用于从输入字符串中去除非字母数字字符: 请注意,这等效于-它包括下划线字符。要删除下划线,请使用例如: 输入格式错误
问题内容: 我有一个字符串,我想用一个星号替换任何不是标准字符或数字的字符,例如(az或0-9)。例如,“ h ^&ell`。,| ow] {+ orld”被替换为“ h * ell * o * w * orld”。请注意,多个字符(例如“ ^&”)将替换为一个星号。我将如何去做呢? 问题答案: 正则表达式可以解救! 例:
问题内容: 我正在寻找一个php函数,该函数将接受一个输入字符串,并通过去除所有仅保留字母数字的特殊字符来返回其净化版本。 我需要另一个功能相同但仅返回字母字符AZ的函数。 任何帮助,不胜感激。 问题答案: 警告:请注意,英语不仅限于AZ。 尝试执行以下操作删除az,AZ和0-9以外的所有内容: 如果字母数字的定义包括外语字母和过时的脚本,则您将需要使用Unicode字符类。 尝试以下操作仅保留A
问题内容: 输入示例: 输出示例: 字母和数字部分的长度不固定。 我知道如何将split()与regex一起使用,但是尽管我检查了Java API,但找不到任何可以帮助我解决此问题的东西。 有没有办法做到这一点?或者我需要使用另一种方法来拆分这些字符串。 任何帮助,将不胜感激。 问题答案: 试试这个正则表达式: 这是一个正在运行的示例:http : //ideone.com/c02rmM 正则表达