替换特殊字符后的所有文本

时间:2012-10-15 21:24:26

标签: javascript regex string match

我有以下字符串,例如

http://stackoverflow.com/questions/5518282/regex-to-find-all-text-after-delimited-string?3748374731

我想尝试使用正则表达式将所有项目放在?之后 - 所以我只剩下原始网址了?

我想用javascript做这个吗?

5 个答案:

答案 0 :(得分:2)

var url="http://stackoverflow.com/questions/5518282/regex-to-find-all-text-after-delimited-string?3748374731";
var path=url.split("?")[0];

答案 1 :(得分:0)

试一试:

<? $string = 'http://stackoverflow.com/questions/5518282/regex-to-find-all-text-after-delimited-string?3748374731' ;
$string = substr ( $string , 0 , strpos ( $string , '?' ) ) ;
echo $string ;
?>

更新:javascript呵呵?

几乎相同的事情:

var string = 'http://stackoverflow.com/questions/5518282/regex-to-find-all-text-after-delimited-string?3748374731' ;
string = string.substr(0,string.search('?');

答案 2 :(得分:0)

类似......

function removeParams(url) {
    return url.substring(0, url.lastIndexOf('?'));
}

会奏效。它将url的子字符串从0转到问号的最后一次出现并返回它。

答案 3 :(得分:0)

你可以在之前抓住所有角色吗?并且忽略其余的,假设?只发生一次(应该是这种情况,网址中的?应该是url编码的)

^[^?]+

^从字符串的开头匹配。 [^?]表示任何不是问号的东西。 +表示前一个字符类1次或更多次。

您也可以

var s = "http://stackoverflow.com/questions/5518282/regex-to-find-all-text-after-delimited-string?3748374731";
var rawUrl = s.split("?")[0];

答案 4 :(得分:-1)

document.location.origin+document.location.pathname