如何从字符串创建 SEO 友好的破折号分隔网址?
取一个字符串,例如:
在 C# 中:如何在逗号分隔的字符串列表中的字符串周围添加“引号”?
并将其转换为:
in-c-how-do-i-add-quotes-around-string-in-a-comma-delimited-list-of-strings
要求:
- 用破折号分隔每个单词并删除所有标点符号(考虑到并非所有单词用空格分隔。)
- 函数接受最大长度,并获取低于该最大长度的所有标记。 示例:
ToSeoFriendly("hello world hello world", 14)
返回"hello-world"
- 所有单词都转换为小写。
另外,是否应该有最小长度?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(12)
这是我的 C# 解决方案
Here is my solution in C#
我将按照以下步骤操作:
用一个连字符替换多个连字符(不需要,因为已经调用了preg_replace()
函数防止多个连字符)所以,所有这些都在一个函数中(PHP):
I would follow these steps:
replace multiple hyphens by one hyphen(not necessary as thepreg_replace()
function call already prevents multiple hyphens)So, all together in a function (PHP):
C#
C#
这是 php 的解决方案:
用法:
除非您需要 uri 可输入,否则它们不需要很小。 但您应该指定一个最大值,以便 url 能够与代理等一起正常工作。
Here's a solution for php:
usage:
Unless you need the uris to be typable, they don't need to be small. But you should specify a maximum so that the urls work well with proxies etc.
更好的版本:
A better version:
Perl 中的解决方案:
完成。
Solution in Perl:
done.
shell中的解决方案:
Solution in shell:
这与 Stack Overflow 生成 slugs 的方式很接近:
This is close to how Stack Overflow generates slugs:
为此,我们需要:
我想要一个函数来生成整个字符串,并输入可能的最大长度,这就是结果。
该助手用于将一些国际字符重新映射为可读字符。
该函数会像这样工作
这个问题已经被回答了很多次 这里但没有一个被优化。
您可以在 github 上找到完整的源代码以及一些示例。
您可以从 Johan Boström 的博客。 更多信息与 .NET 4.5+ 和 .NET Core 兼容。
To do this we need to:
I wanted a function to generate the entire string and also to have an input for a possible max length, this was the result.
This helper is used for remapping some international characters to a readable one instead.
To the function would work something like this
This question has already been answered many time here but not a single one was optimized.
you can find the entire sourcecode here on github with some samples.
More you can read from Johan Boström's Blog. More on this is compatible with .NET 4.5+ and .NET Core.
在 PHP 中执行此操作的一种稍微简洁的方法至少是:
最好在开始时执行
trim()
,这样以后需要处理的内容就会减少,并且完全替换是在中完成的preg_replace()。
感谢 cg 提出了大部分内容:清理 URL 中的字符串(例如 SO 上的问题名称)的最佳方法是什么?
A slightly cleaner way of doing this in PHP at least is:
Might as well do the
trim()
at the start so there is less to process later and the full replacement is done with in thepreg_replace()
.Thxs to cg for coming up with most of this: What is the best way to clean a string for placement in a URL, like the question name on SO?
选择 Ruby 的另一个季节,另一个原因:)
仅此而已。
Another season, another reason, for choosing Ruby :)
That's all.
在 python 中,(如果安装了 django,即使您使用的是其他框架。)
In python, (if django is installed, even if you are using another framework.)