Javascript 将用户输入url与php变量中的url匹配

Javascript 将用户输入url与php变量中的url匹配,javascript,php,jquery,Javascript,Php,Jquery,有一个变量 $string = 'http://www.someurl.com/somerandom/page.php'; 有一个输入 <input type="text" class="theurl" /> 但不验证/之后的内容,这意味着用户可以更改 somerandom/page.php 事情的一部分。我仍然在学习php,并且已经走了很长的路,但这是我的头绪 注意:我不想为用户预先填充数据,也不想提前知道变量链接。我只是想匹配和验证一下。也许是jquery/js和php的混

有一个变量

$string = 'http://www.someurl.com/somerandom/page.php';
有一个输入

<input type="text" class="theurl" />
但不验证/之后的内容,这意味着用户可以更改

somerandom/page.php
事情的一部分。我仍然在学习php,并且已经走了很长的路,但这是我的头绪

注意:我不想为用户预先填充数据,也不想提前知道变量链接。我只是想匹配和验证一下。也许是jquery/js和php的混合

我甚至不知道从哪里开始。帮忙?可能是针对我的问题的示例代码

更新/最终版

到目前为止,我已经知道了

$re = "/http:\\/\\/([^\\/\\r\\n]+)/"; 
$string = $baffiliate; 
$newstring = preg_match($re, $string, $matches);
foreach($matches as $key=>$value)
    {
    $value = $value;
    }
if(strpos($_POST['affiliate'], $value) === false) {
echo 'error';
}else{
...do something
}

我选择使用这个解决方案,因为它在测试期间不需要额外的e变量计数:)

如果您知道字符串第一部分的长度和确切字符,您可以简单地使用substr()


substr()函数首先获取字符串($string)。然后,如果希望立即开始检查,则第二个参数将为“0”。接下来是要验证的字符数。

如果知道字符串第一部分的长度和确切字符数,只需使用substr()

substr()函数首先获取字符串($string)。然后,如果希望立即开始检查,则第二个参数将为“0”。接下来是要验证的字符数。

您可以使用。 你可以用。
不幸的是,实际的变量链接没有提前知道。它完全是从数据库中从系统中另一个用户输入的数据中检索出来的,这意味着url可以是任意url和任意长度的字符。我相信我必须做一些php正则表达式来获取url中第三个“/”之前的所有字符,将它们设置为一个变量,对该变量进行计数,然后把你的代码和它混在一起,但正则表达式太让我头疼了……我真的不明白你的问题。我上面写的代码不需要计算$string中的字符数。您只需提供要验证的URL的第一部分(“)然后计算URl的长度。答案都不是对的或错的。正如我在最后的更新/代码中所显示的,首先我必须使用正则表达式来获取URI,因为URI是未知的。这是从数据库传递的变量。通过正则表达式获取URI后,唯一知道URI长度的方法是设置一个变量,然后计算URI的长度如果变量srteng带有strlen。否则我怎么知道URI有多长呢?我选择了我选择的答案,因为虽然它也没有解释任何正则表达式部分,但字符串上最后一个额外的strlen计数不是必需的。在我做正则表达式之后,这两个答案都会起作用。不幸的是,实际的变量链接在此之前是未知的时间。它完全是从数据库中从系统中另一个用户输入的数据中检索出来的-这意味着url可以是任何url和任意长度的字符数。我相信我必须执行某种php正则表达式,以获得第3个字符之前的所有字符。”/“在url中,将它们设置为一个变量,对该变量进行计数,然后将您的代码与该变量混合,但regex太让我头疼了……我真的不理解您的问题。我上面写的代码不需要计算$string中的字符数。您只需提供要验证的URL的第一部分(“)然后计算URl的长度。答案都不是对的或错的。正如我在最后的更新/代码中所显示的,首先我必须使用正则表达式来获取URI,因为URI是未知的。这是从数据库传递的变量。通过正则表达式获取URI后,唯一知道URI长度的方法是设置一个变量,然后计算URI的长度如果变量srting带有strlen。否则我怎么知道URI有多长?我选择了我选择的答案,因为虽然它也没有解释任何正则表达式部分,但字符串上最后一个额外的strlen计数不是必需的。在我做正则表达式之后,这两个答案都会起作用。
$re = "/http:\\/\\/([^\\/\\r\\n]+)/"; 
$string = $baffiliate; 
$newstring = preg_match($re, $string, $matches);
foreach($matches as $key=>$value)
    {
    $value = $value;
    }
if(strpos($_POST['affiliate'], $value) === false) {
echo 'error';
}else{
...do something
}
$urlLength = 23; // http://www.someurl.com/ have 23 characters
$urlText =  "http://www.someurl.com/"; // What is the text you want to validate?
if (substr($string, 0, $urlLength) == $urlText) {
    echo "Valid.";
}
else {
    echo "Not valid.";
}
 $string = 'http://www.someurl.com/somerandom/page.php';
 if(strpos($string, 'http://www.someurl.com/') >= 0) {
    echo 'valid';   
 } else {
    echo 'invalid'; 
 }