将.html添加到字符串Javascript?

问题描述:

我想检查一个字符串是否以“.php”扩展名结尾,如果不是,我想在结尾处添加.html。我已经尝试过各种“切片”方法而没有成功。将.html添加到字符串Javascript?

+1

@ user1317928请尝试用代码来解释你的问题很好(你试过)如果可能的话,从下一次 – Devjosh 2012-04-06 17:23:38

您可以使用正则表达式为

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

假设“.PHP”在中间的某个地方发生的无病理情况。 – 2012-04-06 17:16:49

+2

@DaveNewton不,他没事。注意标记字符串结尾的'$'。 – Imp 2012-04-06 17:23:52

+1

@Imp他补充说,之后,戴夫在当时是正确的。 – Paulpro 2012-04-06 17:39:20

尝试是这样的

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

那么你可以做

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

不是'(str.length - 4)'吗? – 2012-04-06 17:15:13

+1

@斯科特,正确的,为现场欢呼。 – 2012-04-06 17:18:58

使用(yourstring + '.html').replace(/\.php\.html$/, '.php')做到这一点:

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 

或许:

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

使用正则表达式来解决你的问题。 /.php$/是一个正则表达式,检查是否一个字符串与 '.PHP'

有关详细信息读取结束时:http://www.w3schools.com/js/js_obj_regexp.asp

例如代码:

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

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

那么,slice()适用于此任务。

var s = "myfile.php"; 

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