0

我已经看到了在特定字符之后删除字符的几个结果 - 我的问题是如何使用字符串执行此操作?

基本上,这适用于任何给定的数据字符串,但让我们使用一个 URL:stackoverflow.com/question

使用给定的字符串,在 JS 中,我想删除“.com”之后的所有内容,将“.com”分配给一个变量,并将“.com”之前的文本分配给一个单独的变量。

所以,最终结果: var x = "stackoverlow" var y = ".com"


到目前为止我所做的:1)使用拆分、子字符串等的组合。我可以让它删除片段,但不能不删除“.com”字符串的一部分。我很确定我可以用 substring 和 split 做我想做的事,我想我只是不正确地实现它。2)我正在使用 indexOf 在完整字符串中查找字符串“.com”

有小费吗?我没有发布我的实际代码,因为我尝试过的所有不同的东西都变得如此混乱(如果有必要,我可以继续这样做)。

谢谢!

4

3 回答 3

1

使用正则表达式。

"stackoverflow.com".match(/(.+)(\.com)/)

结果是

["stackoverflow.com", "stackoverflow", ".com"]

(但是,为什么要分配.com给变量?

于 2013-03-23T03:47:53.823 回答
1

你真的应该研究正则表达式。

这里有一些代码可以得到你想要做的事情:

var s = 'stackoverflow.com/question';

var re = /(.+)(\.com)(.+)/;

var result = s.match(re); 

if (result && result.length >= 3) {

    var x = result[1], //"stackoverlow"
        y = result[2]; //".com"

    console.log('x: ' + x);
    console.log('y: ' + y);
}
于 2013-03-23T04:02:27.107 回答
0

"stackoverflow.com".split(/\b(?=\.)/)=>["stackoverflow", ".com"]

或者,

"stackoverflow.com/question".split(/\b(?=\.)|(?=\/)/)
=>["stackoverflow", ".com", "/question"]

于 2013-03-23T03:50:23.240 回答