实时验证用户输入

时间:2010-02-19 16:32:11

标签: jquery seo

我想基本上有一个Title字段和一个Title字段。

所以基本上用户输入一个电影名称:“From Paris With Love”,它将在下面的字段中作为“来自巴黎与爱”。

然而,我想知道是否已经有类似的东西,并且知道有人会知道! ;)

  • 亚伦

编辑:

http://www.thewebsitetailor.com/jquery-slug-plugin/非常完美!

5 个答案:

答案 0 :(得分:4)

我在自己的应用程序中做了类似的事情。还有一些服务器端代码,用于验证生成的值,但我创建了一个JavaScript帮助程序来执行客户端“Urlify”。它将用' - '替换'',':','\'和'/',然后删除所有非字母数字字符,最后清除多个' - '旁边的任何实例。侧的。

function FormatForUrl(str) {
    return str.replace(/_/g, '-')
        .replace(/ /g, '-')
        .replace(/:/g, '-')
        .replace(/\\/g, '-')
        .replace(/\//g, '-')
        .replace(/[^a-zA-Z0-9\-]+/g, '')
        .replace(/-{2,}/g, '-')
        .toLowerCase();
};

实施例

  • “Hello World” - “hello-world”
  • “汽车售价1700美元” - “the-car-cost-1700”
  • “嘿,我们去角落店吧。” - “hey-lets-to-the-corner-store”
  • “www.mywebsite.com/page1.html” - “wwwmywebsitecom-page1html”
  • “email@mywebsite.com” - “emailmywebsitecom”

答案 1 :(得分:3)

您可以使用JavaScript函数encodeURIComponent,它将替换空格以及不能在URL中使用的任何其他字符。

参考:  https://developer.mozilla.org/En/Core_JavaScript_1.5_Reference:Global_Functions:encodeURIComponent

答案 2 :(得分:1)

一种非常简单的方法是使用破折号删除所有非字母数字字符:

$(":input").bind("keyup", function(){
  $(".seo").text( $(this).val().replace(/[^a-z0-9]+/gi, "-") ); 
});

转换 Jonathan告诉你,世界 jonathan-says-hello-world

在线演示:http://jsbin.com/eqama/2/edit

答案 3 :(得分:0)

Django项目使用了一个很好的urlify库。我认为许可证是BSD或麻省理工学院。你需要检查一下。您可以在此处找到它:http://code.djangoproject.com/browser/django/trunk/django/contrib/admin/media/js/urlify.js

该脚本将删除不必要的字符,用短划线替换空格,并将其他字符替换为重音和其他特殊字符。

我使用jquery的方式我检查标题文本框失去焦点并更新我的网址


//Note i have modify that URLify method to accept one argument instead of 2, don't need length
 $(document).ready(function() {
            $('#Title').focusout(function() {
                $('#Permalink').val(URLify($(this).val()));                
            });
        });

答案 4 :(得分:0)

这是我使用的那个。

$.fn.slug = function(){
    return this
            .val()
            .replace(/[^a-zA-Z 0-9-]+/g,'')
            .toLowerCase()
            .replace(/s/g,'-')
};