2013-03-23 179 views
0

我已經看到了一些特定字符後刪除字符的結果 - 我的問題是如何用字符串來做到這一點?JS - 刪除字符串前後的所有字符(並保留該字符串)?

基本上,這適用於任何給定數據串,而是讓我們的網址:stackoverflow.com/question

隨着給定的字符串,在JS,我想後」刪除所有內容。 com「,將」.com「分配給一個變量,並將」.com「之前的文本分配給一個單獨的變量。

所以,最終的結果:var x = "stackoverlow" var y = ".com"


什麼我迄今所做的: 1)採用分體式,串等的組合,我可以把它清除碎片,但並非沒有消除「.com」字符串的一部分。我敢肯定,我可以做我想做的與子字符串和拆分,我想我只是不正確地實現它。 2)我使用indexOf在整個字符串中查找字符串「.com」

任何提示?我沒有發佈我的實際代碼,因爲它變得如此混亂以及我嘗試過的所有不同的事情(如果需要,我可以繼續這樣做)。

謝謝!

+0

如果輸入的是一樣的東西'sub.domain.com/something' - 你想要得到的結果是'子.domain'和'.com'?如果輸入包含'.net'而不是'.com'? – nnnnnn 2013-03-23 03:48:32

+0

曾聽說過[RegExp](https://developer.mozilla.org/en-US/docs/JavaScript/Guide/Regular_Expressions)? – ShuklaSannidhya 2013-03-23 04:09:32

+0

@nnnnnn .com在那裏作爲一個假設 - 我創建的整個腳本將不僅僅是一個後綴。 – Lent 2013-03-23 04:10:14

回答

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); 
} 
1

使用正則表達式。

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

結果

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

(爲什麼你要分配.com給一個變量,但?

+1

反斜槓不正確,應刪除。 – 2013-03-23 03:51:15

+0

謝謝! .com更像是一個假想的東西,用在我的問題中。 – Lent 2013-03-23 04:11:52

+1

@ RyanO'Neill - 它只是在錯誤的位置。 – Koterpillar 2013-03-23 05:19:45

0

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

或者,

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

相關問題