Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/400.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用jQuery按字母顺序对div中的文本排序_Javascript_Jquery_Html_Sorting_Alphabetical - Fatal编程技术网

Javascript 使用jQuery按字母顺序对div中的文本排序

Javascript 使用jQuery按字母顺序对div中的文本排序,javascript,jquery,html,sorting,alphabetical,Javascript,Jquery,Html,Sorting,Alphabetical,是否可以在div中找到某些特定文本,然后按字母顺序排序 例如,在div中的此文本块中: 我觉得这完全不可能,但也许只是一个寻找和替换?不太确定最好的方法是什么。像这样: divText = $('.text-block').text(); arr = divText.split(","); lastStr = arr.pop(-1); arr.sort(); arr.push(lastStr); $('.text-block').text(arr.toString()); 您可以使用正则表达式

是否可以在div中找到某些特定文本,然后按字母顺序排序

例如,在div中的此文本块中:

我觉得这完全不可能,但也许只是一个寻找和替换?不太确定最好的方法是什么。

像这样:

divText = $('.text-block').text();
arr = divText.split(",");
lastStr = arr.pop(-1);
arr.sort();
arr.push(lastStr);
$('.text-block').text(arr.toString());

您可以使用正则表达式来完成这一点。这样,您可以支持更通用的输入

$.text-block.htmlfunctionidx,oldhtml{ 返回oldhtml.replace/[,a-z]+和[a-z]+/gi,function{ tmp=a.replace和.split/[^\w]+/.sort; 返回tmp.slice0、-1.join、+和+tmp.pop; } }; 吉姆、迈克、阿里和玛莎去了商店。 您可以这样做: 使用regex获取以大写字母开头的名称。 对名称排序后,需要连接剩余文本。 见下文: var str=$'.text block'.text//阅读div var name=str.match/\b[A-Z].*?\b/g//找出名字 var lastName=names[names.length-1]; var lastNameIndex=str.indexOflastName; var remainingStr=str.slicelastNameIndex+lastName.length//剩下的 //正文 names=names.sort; 名称[names.length-1]=和+名称[names.length-1]; var newStr=names+remainingStr; $'.text block'.textnewStr//更新分区 吉姆、迈克、阿里和玛莎去了商店。
你会一直有四个人吗?或者人数会有所不同?如前所述,这个问题并不容易。试着把它分成小块。您可以使用jQuery获取div中的文本。然后,使用regex,您可以找到每个大写的单词,并将这些单词放入数组中。对该数组排序,然后将名称重新格式化为句子的开头。然后把它们放回div。不容易,但可行。可能,但可能不是任何人都想写的东西。你不能把名字存储在一个预先排序的变量中,然后把它写出来吗?这有点困难,因为我和玛莎去了存储。。也是格式永远不变吗?4个名字,然后去了商店?基本上你是在问有没有可能解析自然的人类语言?下面你会得到一堆答案,这些答案都是肯定的!扔一个正则表达式!用逗号分开!这很好,直到你试图解析的下一段文本省略了牛津逗号,或者使用了人类在纯文本中经常使用的无数其他语法变体。自然语言处理是一个完整的研究领域,这是有原因的。这很难。
<div class="text-block">
Ali, Jim, Marsha, and Mike went to the store.
</div>
divText = $('.text-block').text();
arr = divText.split(",");
lastStr = arr.pop(-1);
arr.sort();
arr.push(lastStr);
$('.text-block').text(arr.toString());