2
 var file = "{employee}";
 var imgFile = "cancel.json";

  if(file starts with '{' and file ends with '}' ){
     alert("invalid");
  }
  if(imgFile ends with '.json'){
    alert("invalid");
  }
  • javascriptを使用して文字列の開始文字と終了文字を検証する方法は?
  • 「ファイル」では、文字列は「{」で始まり、「}」で終わるべきではありません
  • 「imgFile」では、文字列は「.json」で終わってはいけません
  • match() は機能しますか、それとも indexOf() を使用する必要がありますか
4

7 に答える 7

7

match() は機能しますか、それとも indexOf() を使用する必要がありますか

ない。どちらも機能しますが、どちらも文字列全体を検索します。関連する場所で部分文字列を抽出し、そこで期待するものと比較する方が効率的です。

if (file.charAt(0) == '{' && file.charAt(file.length-1) == '}') alert('invalid');
// or:                       file.slice(-1) == '}'
if (imgFile.slice(-5) == '.json') alert('invalid');

もちろん、正規表現を使用することもできます。スマートな正規表現エンジンを使用すると、同様に効率的になります (コードはより簡潔になります)。

if (/^\{[\S\s]*}$/.test(file)) alert('invalid');
if (/\.json$/.test(imgFile)) alert('invalid');
于 2013-05-23T08:50:22.750 に答える
1

これ

 /^\{.*\}$/.test (str)

strは、で始まる{および終わるの true を返します}

于 2013-05-23T08:46:41.710 に答える
0

「ファイル」では、文字列は「{」で始まり、「}」で終わるべきではありません

    if (file.charAt(0) == '{' || file.charAt(file.length - 1) == '}') {
        throw 'invalid file';
    }

「imgFile」では、文字列は「.json」で終わってはいけません

    if (imgFile.lastIndexOf('.json') === imgFile.length - 5) {
        throw 'invalid imgFile';
    }
于 2013-05-23T08:36:18.697 に答える
0
file.indexOf("{") == 0 && file.lastIndexOf("}") == file.length-1
于 2013-05-23T08:36:25.887 に答える
0

文字列の検証に関しては多くのオプションがあります。正規表現を使用できます..さまざまな文字列メソッドもあなたのために仕事をすることができます...

しかし、あなたの問題は次のことを試すことができます:

if(file.indexOf('{') == 0 && file.indexOf('}') == file.length - 1) 
        alert('invalid');

2番目の部分では、ファイルの拡張子を探している可能性が最も高いため、次を使用できます。

if(imgFile.split('.').pop() == "json")
    alert('invalid');   

お役に立てれば....

于 2013-05-23T08:38:21.543 に答える
0

javascript の startswith() と endwith() を使用できます

    function strStartsWith(str, prefix) {
    return str.indexOf(prefix) === 0;
}
function strEndsWith(str, suffix) {
return str.indexOf(suffix, str.length - suffix.length) !== -1;
}
or
function strEndsWith(str, suffix) {
var re=new RegExp("."+suffix+"$","i");
if(re.test(str)) alert("invalid file");

}

または、次のように使用することもできます。

String.prototype.startsWith = function (str){
return this.slice(0, str.length) == str;
};
 and

String.prototype.endsWith = function (str){
return this.slice(-str.length) == str;
};
于 2013-05-23T08:31:28.990 に答える