使用 javascript 重新排列文本(字符串)

Rearranging text(string) using javascript

本文关键字:javascript 文本 字符串 排列 新排列 使用      更新时间:2023-09-26
这是一个

简单的问题,但我只是在学习javascript。我有文字"史密斯,约翰 - PPP"。我怎样才能把它重新排列成"约翰史密斯"?谢谢!

基本上,您将匹配原始字符串中的模式,提取感兴趣的片段并重新排列它们。常用的工具是正则表达式。

在您的示例中:

var s = "Smith, John - PPP";
var r = s.replace(/^([^,]+), ?([^ ]+).*$/, "$2 $1");

r将保存替换的字符串。

警告:

正则表达式是一个有用的工具。它们不是灵丹妙药。仔细检查您将要使用的工具是否适合手头的任务(螺丝刀也很有帮助,除非您尝试使用它将钉子钉入墙壁)!

特别是,如果不使用更强大的工具,通常不建议对半结构化数据的词法表示(read:html,xml)进行模式匹配。如果您有任何疑问,请查看此著名SO帖子的公认答案。

如果字符串具有常量格式,则只是使用 split 的快速解决方案:

var data = 'Smith, John - PPP';
data = data.split(' - ')[0].split(', ');
var result = data[1] + ' ' + data[0];
console.log(result);

这是对@ToKeN解决方案的扩展。

使用库作为 JQuery (http://jquery.com/) 可以轻松拆分和连接字符串,但 javascript 允许以这种方式从底层开始;

Smith, John - PPP'.split(', ')[1]

拆分后,您可以像任何数组一样演奏字符串部分:

var name = 'Smith, John - PPP';
alert(name.split(' ')[1]+' '+name.split(' ')[0].split(',')[0]); //Will alert "John Smith"

祝你好运。

尝试使用拆分和 substr 方法

var str = "Smith, John - PPP";
var res = str.split(",");
console.log(res[1].substr(1,4) + res[0]); // John Smith

JSFiddle

请注意,此示例仅适用于当前任务,因为 OP 没有分隔符或其他任何东西,只有一个简单的字符串