Javascript 使用jQuery按字母顺序对div中的文本排序
是否可以在div中找到某些特定文本,然后按字母顺序排序 例如,在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()); 您可以使用正则表达式
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());