Javascript 什么';我的JS函数有什么问题?
我正在优化JS的Java代码,但运行在Nashorn上,没有自己的调试选项。输入为Javascript 什么';我的JS函数有什么问题?,javascript,function,Javascript,Function,我正在优化JS的Java代码,但运行在Nashorn上,没有自己的调试选项。输入为val=“JPG ou PNG”,输出为“JPG ou PNG”。为什么会发生这种情况?我需要输出为“jpg/png” 作用 function process(val) { var cleaned = val.replaceAll("[•×\\tª°▪º⊗ fi ²●˚~ĩ`ũ]", "").trim().toLowerCase(); var out = []; if (cleaned.con
val=“JPG ou PNG”
,输出为“JPG ou PNG”
。为什么会发生这种情况?我需要输出为“jpg/png”
作用
function process(val) {
var cleaned = val.replaceAll("[•×\\tª°▪º⊗ fi ²●˚~ĩ`ũ]", "").trim().toLowerCase();
var out = [];
if (cleaned.contains("ou")) {
out = cleaned.split("ou");
}
else if (cleaned.contains("/")) {
out = cleaned.split("/");
}
else {
return cleaned;
}
for (var i = 0; i < out.length; i++) {
out[i] = out[i].trim();
}
return join(out, "/");
}
功能过程(val){
var CLEATED=val.replaceAll(“[•×\\tª°”▪º⊗ fi ²●˚ĩ`ũ]”,”).trim().toLowerCase();
var out=[];
如果(已清理。包含(“ou”)){
out=已清理。拆分(“ou”);
}
else if(已清理。包含(“/”){
out=已清理。拆分(“/”);
}
否则{
返回清洁;
}
对于(变量i=0;i
javascript中没有三个函数:
replaceAll(searchValue,newValue)
是replace(searchValue,newValue)
contains(searchValue)
在javascript中是indexOf(searchValue)>-1
join(数组,分隔符)
在javascript中是array.join(分隔符)
function process(val) {
var cleaned = val.replace("[•×\\tª°▪º⊗ fi ²●˚~ĩ`ũ]", "").trim().toLowerCase();
var out = [];
if (cleaned.indexOf("ou") >= 0) {
out = cleaned.split("ou");
}
else if (cleaned.indexOf("/") >= 0) {
out = cleaned.split("/");
}
else {
return cleaned;
}
for (var i = 0; i < out.length; i++) {
out[i] = out[i].trim();
}
return join(out, "/");
}
功能过程(val){
var清洁=val.replace(“[•×\\tª°”▪º⊗ fi ²●˚ĩ`ũ]”,”).trim().toLowerCase();
var out=[];
如果(已清理的索引OF(“ou”)>=0){
out=已清理。拆分(“ou”);
}
else if(cleaned.indexOf(“/”>)=0){
out=已清理。拆分(“/”);
}
否则{
返回清洁;
}
对于(变量i=0;i
您的逻辑是正确的,但是Javascript中的字符串没有'replaceAll'和'contains',所以我将它们替换为'replace'和'indexOf(x)>=0'
另外,您提到您没有在您的环境中调试的选项,但是您提供的功能是相当独立的。这意味着您可以轻松地将其复制到另一个环境中,以进行隔离测试
例如,我能够将此代码包装在HTML文件中,然后在web浏览器中打开它(我必须实现自己的“加入”)
函数联接(val、除法器){
var out=“”;
对于(变量i=0;i0)out+=除法器;
out+=val[i];
}
返回;
}
功能过程(val){
var清洁=val.replace(“[•×\\tª°”▪º⊗ fi ²●˚ĩ`ũ]”,”).trim().toLowerCase();
var out=[];
如果(已清理的索引OF(“ou”)>=0){
out=已清理。拆分(“ou”);
}
else if(cleaned.indexOf(“/”>)=0){
out=已清理。拆分(“/”);
}
否则{
返回清洁;
}
对于(变量i=0;i”+outval);
我通过打开控制台并看到输出“JPG ou PNG=>JPG/PNG”来验证它的工作原理。什么是
replaceAll
和包含?没有这样的方法这些函数在JS中不存在?当它这样使用时,join
。以下是javascript@pedrostradajoin
exist@Daniela是的,他们在JS中失踪了。您必须使用和方法来代替
<html>
<body>
<script>
function join(val, divider) {
var out = "";
for(var i = 0; i < val.length; i++) {
if(out.length > 0) out += divider;
out += val[i];
}
return out;
}
function process(val) {
var cleaned = val.replace("[•×\\tª°▪º⊗ fi ²●˚~ĩ`ũ]", "").trim().toLowerCase();
var out = [];
if (cleaned.indexOf("ou") >= 0) {
out = cleaned.split("ou");
}
else if (cleaned.indexOf("/") >= 0) {
out = cleaned.split("/");
}
else {
return cleaned;
}
for (var i = 0; i < out.length; i++) {
out[i] = out[i].trim();
}
return join(out, "/");
}
var inval = "JPG ou PNG";
var outval = process(inval);
console.log(inval + " => " + outval);
</script>
</body>
</html>