【发布时间】:2017-11-13 23:51:51
【问题描述】:
这是我的javascript 代码:
function lattify(id) {
var inputTextStr = document.getElementById(id).value;
var lattiStr = "";
for (var i = 0; i < inputTextStr.length; i++) {
console.log(inputTextStr[i]);
var inputText = inputTextStr[i];
if (inputTextStr[i + 1] !== "a" || "e" || "i" || "o" || "u") {
lattiStr = inputTextStr.substr(2) +
inputTextStr.substr(0, inputTextStr.length);
}
}
console.log(lattiStr);
}
这是我的html 代码:
<form>
<input type="text" id="latin">
<button type="button" onclick="lattify('latin'.toString())">Submit</button>
</form>
这个程序应该做的是将表单中的文本输入到函数'lattify'。那部分有效。不起作用的部分是前两个字母加到末尾的部分,如果它们都是辅音的话。
【问题讨论】:
-
如果你提供一些“之前”和“之后”的例子会很有帮助
-
我不认为这符合您的预期:
if(inputTextStr[i+1]!=="a"||"e"||"i"||"o"||"u")。例如:inputTextStr[i+1]!=="a"是一个布尔语句。然后语句“e”是它的 ORd,因为它是非零的,所以它总是 TRUE。所以你的if声明总是正确的。相反,你为什么不使用indexOf。 -
另外,您在索引之前不会检查字符串的边界。你会遇到问题。
-
"如果字符串的前 2 个字符是辅音,则将它们移到字符串的末尾"。另一种解决方案:
"your string here".replace(/^([^aeiou]{2}).*/,function(m0,m1){return m0.substring(2)+m1});
标签: javascript html javascript html