使用 javascript 重新排列文本(字符串)
Rearranging text(string) using javascript
这是一个
简单的问题,但我只是在学习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 没有分隔符或其他任何东西,只有一个简单的字符串
相关文章:
- 从单独的html文件预览Javascript文本
- Javascript文本框验证不起作用
- 使用TreeWalker检索非Javascript文本节点
- Javascript文本框-查找最低的输入和填充
- javascript文本验证不起作用.警报消息没有't显示
- JavaScript 文本节点属性
- 简单的Javascript文本编辑器或一组函数
- 将光标放在 javascript 文本框的末尾
- JavaScript 文本区域值,带有数据库中的新行
- 从动态创建的javascript文本框中获取文本输入
- 为什么这个使用谷歌URL的Javascript文本到语音不起作用
- 如何在Javascript文本区域中捕获事件以记录所有键入的文本
- JavaScript文本转换
- 我正在尝试将javascript文本框的输入保存回服务器.我想从保存的弹出文本框中获得输入,以重命名文件夹
- JavaScript文本游戏积分系统
- 基于编辑距离的javascript文本相似度百分比算法
- 如何在React.NET中导出JavaScript文本
- 用于javascript文本输入的简单-+按钮
- asp.net c#中的javascript文本框验证
- 从javascript文本模板访问HTML类