【问题标题】:Javascript replace in a stringJavascript替换字符串
【发布时间】:2015-03-22 06:30:54
【问题描述】:

我熟悉javascript中的“替换”方法还不够。可能是因为我的项目也是一个更好的方法,那么如果你也告诉我这个我会很高兴。

我需要以下内容:

我有一个包含以下内容的字符串:

var address = 'Beethovenstrasse 1, 97080 Würzburg';

这应该转换为:

var addressNew = '97080/W%C3%9CRZBURG/Beethovenstrasse/1';

还有一个字符串

var address = 'Hitzelsbergstr. 84, 83233 Bernau';

这应该转换为:

var addressNew = '83233%20Bernau,%20Hitzelsbergstr.%2084';

解释我为什么需要这个:我需要将地址转换为数据库中字符串“地址”的形式。新字符串“addressNew”随后成为链接的一部分,该链接在移动设备或 TOMTOM 导航 NAVIGON 上开始,并且经过目的地地址。

感谢您的帮助

【问题讨论】:

  • 为什么维尔茨堡首府排在首位,而贝尔瑙却不是?还有你的基本尝试是什么?
  • 是的,您可以使用replace 执行此操作。您将使用捕获组。您可能需要也可能不需要使用函数作为第二个参数(为什么 97080 在它之后得到 /W,而 83233 得到 %20?)。搏一搏。阅读文档。
  • 这两个 addressNew 似乎格式不同。对吗?
  • 到目前为止你尝试了什么?另外,您确定地址将始终符合给定的模式吗?
  • 为什么需要以这种方式转换它们?你需要在某个地方解析它们还是什么?而且,它们是不同的。

标签: javascript string replace replacewith


【解决方案1】:

一个简单的解决方案:

var address = 'Beethovenstrasse 1, 97080 Würzburg';
var parts = address.split(', ');
var newString = parts[1] + '/' + parts[0];
console.log(encodeURIComponent(newString));

这个解决方案非常具体,不处理其他格式,但你应该得到一些想法。

【讨论】:

  • 这是一个很好的方法,现在我只带了正确的顺序。
  • 我不知道你说的“现在我只有正确的顺序”是什么意思?
【解决方案2】:

您可以根据空格拆分字符串,然后可以使用 %20 调整顺序和替换字符

【讨论】:

  • 这不容易,地址也可能是这样的形式: var address = 'Dr Hans-Kapfinger-Strasse 1, 94057 Bad Kötzing';或 var address = 'Bahnhofstrasse 1, 80000 Munich';
  • 但它总是采用 (street) (street number) (code)(city) 的形式?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-07-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多