-1

文字列が「.php」拡張子で終わっているかどうかを確認したいのですが、そうでない場合は最後に.htmlを追加したいと思います。私はすでにさまざまな「スライス」方法を試しましたが、成功しませんでした。

4

6 に答える 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 に答える