【问题标题】:RegExp Validate First http正则表达式首先验证 http
【发布时间】:2012-07-04 18:33:29
【问题描述】:

我需要一个正则表达式来从我的输入框中删除第一个 http。我该怎么做?

例如,如果我的输入框的值为http://welcome.com,则删除http://并将其转换为welcome.com

【问题讨论】:

  • 你想要的太多了。你能说出一个正确的问题吗?
  • 大家好! :) 我认为英语不是 OP 的第一语言,但我们应该考虑周到并尝试了解她/他想要什么,OP 你应该在提问之前坐下来思考一下,这太棒了:) 所以请给出高质量的问题 Anyhoo 你的意思是:http @babakfaghihian Working Demo => jsfiddle.net/RgcRz
  • @mizipzor:您可以编辑问题以尝试帮助澄清它,特别是如果您唯一关心的是问号。我认为那会更有成效。
  • 我想他想要的只是解析字符串是否包含'http://',,
  • @MohammadAdil 我已经提供了一个演示,见上面:) 我认为是一样的

标签: javascript jquery validation


【解决方案1】:

我想你想要这样的东西:

onkeyup="if(!this.value.match(/^http/) )this.value='http://'+this.value"

【讨论】:

  • 我不明白 :) 这是一个有效的示例,您只需将其添加到您选择的输入字段中,例如:开头不包含http,它会自动添加它
  • 我测试了它,兄弟,它没问题,但我想从你的代码中检查这个代码中的第 7 个字母表,它有 http:// 我不想要这个我想检查第 7 个字母表,如果它不是 http:// 那么它添加 http
  • :) 嘿,好的,我的代码没有检查前七个..但是前四个..ok。将 'this.value.match(/^http/)' 更改为 'this.value.match(/^http\:\/\//)' - 现在是七。或者,我可能不明白你在问什么
【解决方案2】:

HTML

<input type="text" value="www.example.com" id="txt_url" />​

JS

var el=document.getElementById('txt_url');
el.onblur=function()
{
    var str=el.value;
    if(str=='') return;    
    if(str.indexOf('http://')==-1) 
    el.value='http://'+str;    
}

Demo.

【讨论】:

  • 你最好使用模糊事件,只要在文本框中写www.example.com之类的东西,它就会随着模糊而改变。
  • 只有当我按下 tab 我想在 keyup 这个功能上工作时它才能工作
  • 但我认为你应该使用 blur 而不是 keyup。
  • Blur 表示该事件会在用户离开文本框后触发,因此它只会在您完成写入并离开文本框后检查一次。
  • Keyup 不适合这项工作。
【解决方案3】:

你真的需要正则表达式吗? indexOf() 可以完成这项工作:

function CheckLink()
{
    var token = "http://";
    var link = "www.example.com";

    if(link.indexOf(token)!=0)
        link = token + link;

    return link;
}

【讨论】:

  • @babakfaghihian 请不要冒犯。这里的人试图帮助你,但他们不愿意执行你的命令。
【解决方案4】:

您不需要知道如何执行此操作,因为您应该避免在链接中添加 httphttps

请改用&lt;a href="//www.example.com"&gt;click me&lt;/a&gt;

见:http://google-styleguide.googlecode.com/svn/trunk/htmlcssguide.xml

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-19
    • 2021-02-24
    相关资源
    最近更新 更多