To działa tylko dla pełnego stopu:

if (string.charAt(string.length-1) != ".") {
        string = string+".";
};
0
zsola3075457 9 grudzień 2013, 15:41

3 odpowiedzi

Najlepsza odpowiedź

Wystarczy dodać dodatkowe warunki do twojego ", jeśli" oświadczenie do powiedzenia "nie jest A. lub A? A! lub A;

2
M21B8 9 grudzień 2013, 11:44

Możesz użyć w ten sposób:

<!DOCTYPE html>
<html>
<body>
<p id="demo">Click the button to display the first character of a string.</p>
<button onclick="myFunction()">Try it</button>
<script>
function myFunction()
{
var str = "HELLO WORLD?";
if(str.charAt(str.length-1) != "." && str.charAt(str.length-1) != "?" && str.charAt(str.length-1) != "!" && str.charAt(str.length-1) != ";")
document.getElementById("demo").innerHTML=str+".";
else
document.getElementById("demo").innerHTML=str;
}
</script>
</body>
</html>
1
Kishan Reddy 9 grudzień 2013, 12:21

Dla jednego warunku możesz to zrobić:

if(!~[".","!","?",";"].indexOf(string[string.length-1])) string+=".";

Wyjaśnienie:

Operator Tilde (~): ~x jest równoważny -Math.floor(x)-1 Oznacza to, że jeśli ostatnia postać nie jest jednym z [".","!","?",";"], indexof zwroty -1, Który operator Tilde zmienia się na 0, który po negowanym, daje prawdą (ponieważ jest falsja) !0 == false

string[x] jest równoważny string.charAt(x)

1
Sophiα2329 10 grudzień 2014, 19:11