2012-03-29 18 views
55

tôi muốn loại bỏ các "www." phần từ đầu của một chuỗi URLTháo chuỗi trên đầu của một URL

Ví dụ trong các trường hợp thử nghiệm:

ví dụ www.test.comtest.com
ví dụ: www.testwww.comtestwww.com
ví dụ: testwww.comtestwww.com (nếu nó không tồn tại)

Tôi có cần sử dụng Regexp hoặc có chức năng thông minh không?

Trả lời

117

Phụ thuộc vào những gì bạn cần, bạn có một vài lựa chọn, bạn có thể làm:

// this will replace the first occurrence of "www." and return "testwww.com" 
"www.testwww.com".replace("www.", ""); 

// this will slice the first four characters and return "testwww.com" 
"www.testwww.com".slice(4); 

// this will replace the www. only if it is at the beginning 
"www.testwww.com".replace(/^(www\.)/,""); 
+10

có lẽ giải pháp cuối cùng là giải pháp tối ưu. – Christoph

+1

KHÔNG phải là giải pháp tối ưu. Tạo một regexp để loại bỏ một chuỗi con là một quá mức cần thiết! – berezovskyi

+1

@berezovskiy tùy thuộc vào những gì bạn đang làm, ví dụ như bạn đang tạo một trò chơi mà hiệu suất là chìa khóa bạn nói đúng, trong hầu hết các trường hợp, IMO tốt hơn để rõ ràng và không giới thiệu lỗi perf hit. Tuy nhiên, câu trả lời cung cấp 3 ví dụ khác nhau để lựa chọn. – NicoSantangelo

8

Nếu chuỗi có cùng định dạng, đơn giản substr() là đủ.

var newString = originalStrint.substr(4) 
+3

'testwww. com' → 'twww.com' = FAIL – Christoph

+0

@Christoph Ya, bằng cách anh ấy chỉnh sửa câu hỏi của mình sau câu trả lời của tôi, đó là lý do tại sao tôi đã đề cập ** nếu chuỗi luôn có cùng định dạng **. – talnicolas

+9

@Christoph và nó sẽ là "' testwww.com' → 'www.com' = FAIL" – talnicolas

0

Hãy thử như sau

var original = 'www.test.com'; 
var stripped = original.substring(4); 
0

Bạn có thể cắt url và sử dụng phản ứng. sendredirect (url mới), điều này sẽ đưa bạn đến cùng một trang với url mới

3

Hoặc theo cách thủ công, như

var str = "www.test.com", 
    rmv = "www."; 

str = str.slice(str.indexOf(rmv) + rmv.length); 

hoặc chỉ sử dụng .replace():

str = str.replace(rmv, ''); 
+0

Tôi thích cách tiếp cận thủ công, vì các chuỗi có thể đến từ biến không có nguy cơ làm rối loạn các regex. – nha

4

Vâng, có một RegExp nhưng bạn không cần phải sử dụng nó hoặc bất kỳ "thông minh" chức năng:

var url = "www.testwww.com"; 
var PREFIX = "www."; 
if (url.indexOf(PREFIX) == 0) { 
    // PREFIX is exactly at the beginning 
    url = url.slice(PREFIX.length); 
} 
Các vấn đề liên quan