উত্তর:
var filename = fullPath.replace(/^.*[\\\/]/, '')
এটি \ OR / উভয় পথে পরিচালনা করবে
replaceহয় অনেক তুলনায় ধীর substr, যা সাথে ব্যবহার করা যেতে পারেlastIndexOf('/')+1 : jsperf.com/replace-vs-substring
Fiddleযদিও `\\` এর জন্য , এটি দুর্দান্ত কাজ করে।
"/var/drop/foo/boo/moo.js".replace(/^.*[\\\/]/, '')moo.js
শুধু পারফরম্যান্সের খাতিরে, আমি এখানে দেওয়া সমস্ত উত্তর পরীক্ষা করেছি:
var substringTest = function (str) {
return str.substring(str.lastIndexOf('/')+1);
}
var replaceTest = function (str) {
return str.replace(/^.*(\\|\/|\:)/, '');
}
var execTest = function (str) {
return /([^\\]+)$/.exec(str)[1];
}
var splitTest = function (str) {
return str.split('\\').pop().split('/').pop();
}
substringTest took 0.09508600000000023ms
replaceTest took 0.049203000000000004ms
execTest took 0.04859899999999939ms
splitTest took 0.02505500000000005ms
এবং বিজয়ী হল স্প্লিট এবং পপ শৈলীর উত্তর, ববিনসকে ধন্যবাদ !
path.split(/.*[\/|\\]/)[1];
নোড.জেজে, আপনি পাথের পার্স মডিউলটি ব্যবহার করতে পারেন ...
var path = require('path');
var file = '/home/user/dir/file.txt';
var filename = path.parse(file).base;
//=> 'file.txt'
basenameফাংশনটি ব্যবহার করতে পারেন :path.basename(file)
কোন প্ল্যাটফর্ম থেকে পথ আসে? উইন্ডোজ পাথগুলি পসিক্স থেকে পৃথক পাথগুলি ম্যাক ওএস থেকে পৃথক 9 পাথ আরআইএসসি ওএসের থেকে পৃথক পৃথক পৃথক পাথ ...
যদি এটি এমন কোনও ওয়েব অ্যাপ্লিকেশন যেখানে ফাইলের নামটি বিভিন্ন প্ল্যাটফর্ম থেকে আসতে পারে তবে এর কোনও সমাধান নেই। তবে যুক্তিসঙ্গত ছুরিকাটি হ'ল '\' (উইন্ডোজ) এবং '/' (লিনাক্স / ইউনিক্স / ম্যাক এবং উইন্ডোজের বিকল্প) উভয়কে পৃথক পৃথক হিসাবে ব্যবহার করা। অতিরিক্ত মজাদার জন্য এখানে একটি নন-রেজিপ্যাক্স সংস্করণ:
var leafname= pathname.split('\\').pop().split('/').pop();
var path = '\\Dir2\\Sub1\\SubSub1'; //path = '/Dir2/Sub1/SubSub1'; path = path.split('\\').length > 1 ? path.split('\\').slice(0, -1).join('\\') : path; path = path.split('/').length > 1 ? path.split('/').slice(0, -1).join('/') : path; console.log(path);
ভাল, আপনার সমাধানটি খালি স্ট্রিং থেকে ইনপুট হিসাবে সুরক্ষা দেয় না। সেক্ষেত্রে এটি ব্যর্থ হয় TypeError: /([^(\\|\/|\:)]+)$/.exec(fullPath) has no properties।
বোবিনস, এখানে নিকফের একটি সংস্করণ যা ডস, পসিক্স এবং এইচএফএস পাথ ডিলিমিটারগুলি (এবং খালি স্ট্রিং) পরিচালনা করে:
return fullPath.replace(/^.*(\\|\/|\:)/, '');
নিকফের চেয়ে বেশি সংক্ষিপ্ত নয় উত্তরের , তবে এই উত্তরটি খালি স্ট্রিং দিয়ে অযাচিত অংশগুলি প্রতিস্থাপনের পরিবর্তে সরাসরি উত্তরটি "নিষ্কাশন" করে:
var filename = /([^\\]+)$/.exec(fullPath)[1];
"এক্সটেনশন ছাড়াই ফাইলের নাম পান" জিজ্ঞাসা করা একটি প্রশ্ন এখানে উল্লেখ করে তবে এর কোনও সমাধান নেই। এখানে ববির সমাধান থেকে সংশোধন করা সমাধান।
var name_without_ext = (file_name.split('\\').pop().split('/').pop().split('.'))[0];
আরেকটা
var filename = fullPath.split(/[\\\/]/).pop();
এখানে বিভাজনের একটি অক্ষর শ্রেণীর সাথে নিয়মিত প্রকাশ হয়
দুটি অক্ষর '\' দিয়ে পালাতে হয়
বা বিভাজক অ্যারে ব্যবহার করুন
var filename = fullPath.split(['/','\\']).pop();
প্রয়োজনে আরও বিভাজককে অ্যারেতে গতিশীলভাবে ঠেলে দেওয়ার উপায় এটি।
যদি আপনার fullPathকোডটিতে স্পষ্টভাবে কোনও স্ট্রিং সেট করা থাকে তবে এটি ব্যাকস্ল্যাশ থেকে বাঁচতে হবে !
মত"C:\\Documents and Settings\\img\\recycled log.jpg"
<script type="text/javascript">
function test()
{
var path = "C:/es/h221.txt";
var pos =path.lastIndexOf( path.charAt( path.indexOf(":")+1) );
alert("pos=" + pos );
var filename = path.substring( pos+1);
alert( filename );
}
</script>
<form name="InputForm"
action="page2.asp"
method="post">
<P><input type="button" name="b1" value="test file button"
onClick="test()">
</form>
পুরো উত্তরটি হ'ল:
<html>
<head>
<title>Testing File Upload Inputs</title>
<script type="text/javascript">
function replaceAll(txt, replace, with_this) {
return txt.replace(new RegExp(replace, 'g'),with_this);
}
function showSrc() {
document.getElementById("myframe").href = document.getElementById("myfile").value;
var theexa = document.getElementById("myframe").href.replace("file:///","");
var path = document.getElementById("myframe").href.replace("file:///","");
var correctPath = replaceAll(path,"%20"," ");
alert(correctPath);
}
</script>
</head>
<body>
<form method="get" action="#" >
<input type="file"
id="myfile"
onChange="javascript:showSrc();"
size="30">
<br>
<a href="#" id="myframe"></a>
</form>
</body>
</html>
উইন্ডোজের পুরো পথ থেকে জিএনইউ / লিনাক্স এবং ইউনিক্স পরম পাথ থেকে ফাইলের নাম নির্ধারণ করতে আপনার প্রকল্পের অন্তর্ভুক্ত করার জন্য সামান্য কাজ।
/**
* @param {String} path Absolute path
* @return {String} File name
* @todo argument type checking during runtime
* @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/includes
* @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/slice
* @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/lastIndexOf
* @example basename('/home/johndoe/github/my-package/webpack.config.js') // "webpack.config.js"
* @example basename('C:\\Users\\johndoe\\github\\my-package\\webpack.config.js') // "webpack.config.js"
*/
function basename(path) {
let separator = '/'
const windowsSeparator = '\\'
if (path.includes(windowsSeparator)) {
separator = windowsSeparator
}
return path.slice(path.lastIndexOf(separator) + 1)
}
<html>
<head>
<title>Testing File Upload Inputs</title>
<script type="text/javascript">
<!--
function showSrc() {
document.getElementById("myframe").href = document.getElementById("myfile").value;
var theexa = document.getElementById("myframe").href.replace("file:///","");
alert(document.getElementById("myframe").href.replace("file:///",""));
}
// -->
</script>
</head>
<body>
<form method="get" action="#" >
<input type="file"
id="myfile"
onChange="javascript:showSrc();"
size="30">
<br>
<a href="#" id="myframe"></a>
</form>
</body>
</html>
সফলভাবে আপনার প্রশ্নের জন্য স্ক্রিপ্ট, সম্পূর্ণ পরীক্ষা
<script src="~/Scripts/jquery-1.10.2.min.js"></script>
<p title="text" id="FileNameShow" ></p>
<input type="file"
id="myfile"
onchange="javascript:showSrc();"
size="30">
<script type="text/javascript">
function replaceAll(txt, replace, with_this) {
return txt.replace(new RegExp(replace, 'g'), with_this);
}
function showSrc() {
document.getElementById("myframe").href = document.getElementById("myfile").value;
var theexa = document.getElementById("myframe").href.replace("file:///", "");
var path = document.getElementById("myframe").href.replace("file:///", "");
var correctPath = replaceAll(path, "%20", " ");
alert(correctPath);
var filename = correctPath.replace(/^.*[\\\/]/, '')
$("#FileNameShow").text(filename)
}
এই ফাইলটি 'ফাইলের নাম' এবং 'পথ' উভয়ের জন্যই অনেক সহজ এবং সাধারণ।
const str = 'C:\\Documents and Settings\\img\\recycled log.jpg';
// regex to split path to two groups '(.*[\\\/])' for path and '(.*)' for file name
const regexPath = /^(.*[\\\/])(.*)$/;
// execute the match on the string str
const match = regexPath.exec(str);
if (match !== null) {
// we ignore the match[0] because it's the match for the hole path string
const filePath = match[1];
const fileName = match[2];
}
function getFileName(path, isExtension){
var fullFileName, fileNameWithoutExtension;
// replace \ to /
while( path.indexOf("\\") !== -1 ){
path = path.replace("\\", "/");
}
fullFileName = path.split("/").pop();
return (isExtension) ? fullFileName : fullFileName.slice( 0, fullFileName.lastIndexOf(".") );
}