我想检查一个字符串是否以“.php”扩展名结尾,如果不是,我想在末尾添加 .html。我已经尝试过各种“切片”方法,但都没有成功。
问问题
156 次
6 回答
2
您可以为此使用正则表达式
var string1 = "www.example.com/index";
var newString = !/\.php$/i.test(string1)? string1+".html": string1;
// newString = "www.example.com/index.html"
于 2012-04-06T17:13:54.370 回答
1
用来 (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
于 2012-04-06T17:15:24.637 回答
1
也许:
function appendHTML(string) {
var html = string;
if (string.lastIndexOf('.php') === (string.length - 4)) {
html += '.html';
}
return html;
}
于 2012-04-06T17:16:07.217 回答
1
使用正则表达式来解决您的问题。/.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
于 2012-04-06T17:17:07.367 回答
1
好吧,slice()
这项任务工作正常。
var s = "myfile.php";
if (s.slice(-4) != ".php")
s = s.slice(0, -4) + ".html";
于 2012-04-06T17:20:00.827 回答
0
尝试这样的事情
function isPHP(str)
{
return str.substring(str.length - 4) == ".php";
}
然后你可以做
str = isPHP(str) ? str : str + ".html";
于 2012-04-06T17:14:02.350 回答