假设我有一个表单输入来提交一个 facebook 用户 ID,但是有些人没有阅读并提交整个链接我如何在表单提交之前删除我不想要的链接部分?
<form>
Facebook id: <input type="text" name="facebookid">
</form>
用户输入:
www.facebook.com/UserProfleID
我如何让它删除“www.facebook.com/”并留下 ID?在提交之前?
非常感谢您的时间,任何帮助都会很棒
假设我有一个表单输入来提交一个 facebook 用户 ID,但是有些人没有阅读并提交整个链接我如何在表单提交之前删除我不想要的链接部分?
<form>
Facebook id: <input type="text" name="facebookid">
</form>
用户输入:
www.facebook.com/UserProfleID
我如何让它删除“www.facebook.com/”并留下 ID?在提交之前?
非常感谢您的时间,任何帮助都会很棒
如果您是收到表单的人,您可以在开始使用它之前先玩一下字符串。您可以使用str_replace删除不需要的子字符串:
str_replace('www.facebook.com/', '', $input);
str_replace('facebook.com/', '', $input);
str_replace('http://facebook.com', '', $input);
尽管我建议您将正则表达式与preg_match一起使用。
如果表单提交后你无法控制,那么你可以使用 Javascript 并利用 split 功能:
//str = input string
var parts = str.split("facebook.com/");
//alerting the username
alert(parts[1]);
您可以使用 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;
}
<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]);
} );
它可能会帮助你。
如果您希望前缀是可预测的,那么您可以使用可以从输入中删除的字符串字典。
但是,如果您无法预测输入,那么正则表达式可以让您灵活地预测模式,但不能预测要删除的值。
如果这是我的代码,我会使用正则表达式……主要是因为我喜欢编写最少的代码来完成最多的工作。