我正在创建一个简单的程序,提示用户输入带有扩展名的文件名,我的程序将分隔文件名和根名。基本上,我的目标如下所示:
userinput=Jack.html
filename=Jack
rootname=html
我能够使用split功能将其分开并单独访问,但我的问题是当用户输入有多个句点时,例如像这样
userinput= Jack.1.2.html
filename=Jack.1.2
rootname=html
如果用户输入有多个句点,我该怎么做呢? 这是我的代码。我也希望在多个时期工作:
var userinput, splitinput;
var rootname, filename;
userinput= prompt('Enter filename:') //
splitinput=userinput.split('.')
filename= splitinput[0]
rootname=splitinput[1]+ userinput[2]
console.log(filename)
console.log(rootname)
答案 0 :(得分:1)
您可以使用file_put_contents($file, $person, FILE_APPEND | LOCK_EX);
和pop()
来完成此操作。实际上我们按句点分割字符串,然后弹出最后一个字符串,然后我们得到字符串的两个部分(rootname和filename)。
这是现场演示:
join()

var userinput = prompt('Enter filename:');
var splitinput = userinput.split('.');
var rootname = splitinput.pop();
var filename = splitinput.join(".");
document.getElementById("output1").textContent = filename;
document.getElementById("output2").textContent = rootname;

答案 1 :(得分:1)
按最后一个句点的位置拆分,如下所示:
var userinput;
var rootname, filename;
userinput= prompt('Enter filename:') //
filename= userinput.substring(0,userinput.lastIndexOf('.'))
rootname=userinput.substring(userinput.lastIndexOf('.')+1)
console.log(filename)
console.log(rootname)

答案 2 :(得分:1)
使用带有负参数的Array.slice()
来关闭数组的最后一部分(例如,html
),然后重新加入:
var userinput = prompt('Enter filename:'),
filename = userinput.split('.').slice(0, -1).join('.') || userinput;
alert('Filename: ' + filename);