我正在 CodeIgniter 中开发一个应用程序,我正在尝试使表单上的字段动态生成 URL slug 。我想做的是删除标点符号,将其转换为小写,并用连字符替换空格。例如,Shane’s Rib Shack 将成为 shanes-rib-shack。
这是我到目前为止所拥有的。小写部分很简单,但替换似乎根本不起作用,我不知道要删除标点符号:
$("#Restaurant_Name").keyup(function() { var Text = $(this).val(); Text = Text.toLowerCase(); Text = Text.replace('/\s/g','-'); $("#Restaurant_Slug").val(Text); });
我不知道“蛞蝓”这个词是从哪里来的,但我们开始吧:
function convertToSlug(Text) { return Text.toLowerCase() .replace(/ /g, '-') .replace(/[^\w-]+/g, ''); }
第replace一种方法将空格更改为连字符,其次,replace 删除任何不是字母数字、下划线或连字符的内容。
replace
如果您不希望“like - this”变成“like—this”,那么您可以改用这个:
function convertToSlug(Text) { return Text.toLowerCase() .replace(/[^\w ]+/g, '') .replace(/ +/g, '-'); }
这将在第一次替换时删除连字符(但没有空格),在第二次替换中它将连续的空格压缩成一个连字符。
所以“like - this”会变成“like-this”。