2012-04-06 6 views
-1

Ich möchte überprüfen, ob eine Zeichenfolge mit der Erweiterung ".php" endet, wenn ich nicht am Ende .html hinzufügen möchte. Ich habe bereits verschiedene "Slice" -Methoden ohne Erfolg ausprobiert.Hinzufügen von HTML zu einem String Javascript?

+1

@ user1317928 versuchen Sie es mit dem Code Ihre Frage gut zu erklären (Sie versucht), wenn möglich ab dem nächsten Mal – Devjosh

Antwort

2

Sie Regex für diese

var string1 = "www.example.com/index"; 
var newString = !/\.php$/i.test(string1)? string1+".html": string1; 
// newString = "www.example.com/index.html" 
+1

keine pathologischen Fall von „.php“ irgendwo in der Mitte auftreten Unter der Annahme. –

+2

@DaveNewton Nein, er hat es in Ordnung gebracht. Beachten Sie das '$', das das Ende der Zeichenfolge markiert. – Imp

+1

@Imp Er fügte das später hinzu, also war Dave zu der Zeit richtig. – Paulpro

0

verwenden können, so etwas wie dieses Versuchen

function isPHP(str) 
{ 
    return str.substring(str.length - 4) == ".php"; 
} 

Dann könnten Sie

str = isPHP(str) ? str : str + ".html"; 
+1

Wäre es nicht '(str.length - 4)'? –

+1

@ Scott, richtig, Prost für den Spot. –

1

Verwenden Sie (yourstring + '.html').replace(/\.php\.html$/, '.php') das zu tun:

var str1 = 'one.php'; 
var str2 = 'two'; 
var str3 = '.php.three.php'; 
var str4 = '.php.hey'; 

console.log((str1 + '.html').replace(/\.php\.html$/, '.php')); // Prints one.php 
console.log((str2 + '.html').replace(/\.php\.html$/, '.php')); // Prints two.html 
console.log((str3 + '.html').replace(/\.php\.html$/, '.php')); // Prints .php.three.php 
console.log((str4 + '.html').replace(/\.php\.html$/, '.php')); // Prints .php.hey.html 
1

Oder vielleicht:

function appendHTML(string) { 
    var html = string; 
    if (string.lastIndexOf('.php') === (string.length - 4)) { 
     html += '.html'; 
    } 
    return html; 
} 
1

Verwendung regulärer Ausdruck, Ihr Problem zu lösen. /.php$/ ist ein regulärer Ausdruck, der überprüft, ob eine Zeichenfolge mit '.php' endet

Für weitere Informationen lesen: http://www.w3schools.com/js/js_obj_regexp.asp

Beispielcode:

str = "http://abc.com"; 
str = (/\.php$/.test(str)) ? str : str + '.html'; // this is the line you want. 

str === "http://abc.com.html" // returns true 
1

Nun, slice() funktioniert gut für diese Aufgabe.

var s = "myfile.php"; 

if (s.slice(-4) != ".php") 
    s = s.slice(0, -4) + ".html"; 
Verwandte Themen