如何在字符串中的问号后用空格替换所有内容?

时间:2017-07-07 10:05:02

标签: javascript

我试图在问号后用空白替换所有内容。

假设我有一个如下字符串:

var str = "/root/Users?SkillId=201;"

现在我想用空白替换所有内容吗?。

预期输出: "/root/Users"

我尝试了下面的解决方案:

var str = "/root/Users?SkillId=201;".replace(/[^? ]/g, "");
console.log(str); // output : ?

str = str.split('?')[0] // though worked but not readable

我不想使用for循环 .Isnt还有更好的方法吗?

6 个答案:

答案 0 :(得分:16)

这应该有帮助

var str = "/root/Users?SkillId=201;"

str = str.replace(/\?.*$/g,"");
console.log(str);

答案 1 :(得分:6)

另一个选择是在'?':

之前获取子字符串

str = str.substr(0, str.indexOf('?'));

答案 2 :(得分:3)

匹配?之前的内容

var str = "/root/Users?SkillId=201;"
var a = str.match(/(.*)\?/);

console.log(a[1])

答案 3 :(得分:3)

只需使用JavaScript功能

var str = "/root/Users?SkillId=201;";
var str = str.substring( 0, str.indexOf("?")-1 );
console.log(str);

这里是小提琴: https://jsfiddle.net/ahmednawazbutt/2fatxLfe/3/

答案 4 :(得分:2)

  

var str = "/root/Users?SkillId=201;" var parts = str.split('?', 2);

parts [0]包含'?'之前的字符串

答案 5 :(得分:1)

不使用正则表达式;

的解决方案

伪代码

Find the index location of the '?' character,
    if the resulting index is greater than -1; then;
        extract the new string; starts at index 0 to the
        nth index location of the '?' character

JS代码

// get the index of the first occurrence of '?'
var qMarkIndex = str.indexOf('?'); 

// '?` character exist
if(qMarkIndex > -1)
    str = str.substr(0, qMarkIndex);

console.log(str);

添加检查?字符是否存在的条件语句可确保;如果由于某种原因,str不包含?字符,则字符串保持不变。