如何在提交之前获取表单以删除部分链接?

时间:2013-03-12 16:34:32

标签: php javascript html forms submit

假设我有一个表单输入来提交Facebook用户ID,但有些人不会阅读并提交整个链接如何在表单提交之前删除我不想要的链接部分?

<form>
Facebook id: <input type="text" name="facebookid">
</form>

并且用户输入:

  

www.facebook.com/UserProfleID

如何删除“www.facebook.com/”并保留ID?提交之前?

感谢您的时间,任何帮助都会很棒

4 个答案:

答案 0 :(得分:0)

如果您是接收表单的人,您可以在开始使用之前使用该字符串。 您可以使用str_replace删除不需要的子字符串:

str_replace('www.facebook.com/', '', $input);
str_replace('facebook.com/', '', $input);
str_replace('http://facebook.com', '', $input);

虽然我建议您使用preg_match的正则表达式。

如果您在提交表单后无法控制,那么您可以使用Javascript并使用拆分功能:

//str = input string
var parts = str.split("facebook.com/");

//alerting the username
alert(parts[1]);

答案 1 :(得分:0)

您可以使用javascript拦截表单提交,并让用户知道他们犯了错误。但正如其他人所说,你仍然应该在服务器上验证。

document.forms[0].onsubmit = function(){
     var input = document.getElementsByName('facebookid')[0].split("/");
     if(input.length > 1){ 
         //should do this part with fancy CSS and not an alert box
         alert("Enter your id only plix plox");
         return false;
      }
     return true;
}

答案 2 :(得分:0)

<form>
Facebook id: <input type="text" id="userid" name="facebookid">
</form>



$("form").submit( function () {
var arr= $("#userid").val().split("facebook.com/");
$("#userid").val(arr[1]);
} );

它可能对你有帮助。

答案 3 :(得分:-1)

如果您希望前缀可预测,那么您可以使用可以从输入中删除的字符串字典。

但是,如果您无法预测输入,那么正则表达式可让您灵活地预测模式,但不能预测要删除的值。

如果这是我的代码,我会使用RegularExpressions ...主要是因为我喜欢编写最少的代码来完成大部分工作。