0

特定の文字の後にある文字を削除すると、いくつかの結果が表示されます。私の質問は、文字列を使用してそれをどのように行うかということです。

基本的に、これは任意のデータ文字列に適用されますが、次のURLを使用してみましょう:stackoverflow.com/question

指定された文字列を使用して、JSで、「。com」の後のすべてを削除し、「。com」を変数に割り当て、「。com」の前のテキストを別の変数に割り当てたいと思います。

したがって、最終結果: var x = "stackoverlow" var y = ".com"


これまでに行ったこと:1)分割、部分文字列などの組み合わせを使用します。「。com」文字列の一部を削除せずに、断片を削除することはできますが、削除することはできません。部分文字列と分割でやりたいことができると確信しています。間違って実装しているだけだと思います。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 に答える