I want to validate if the string ends with space in JavaScript. Thanks in advance.
var endSpace = / \s$/;
var str = "hello world ";
if (endSpace.test(str)) {
window.console.error("ends with space");
return false;
}
I want to validate if the string ends with space in JavaScript. Thanks in advance.
var endSpace = / \s$/;
var str = "hello world ";
if (endSpace.test(str)) {
window.console.error("ends with space");
return false;
}
You can use endsWith()
. It will be faster than regex
:
myStr.endsWith(' ')
The
endsWith()
method determines whether a string ends with the characters of another string, returningtrue
orfalse
as appropriate.
If endsWith
is not supported by browser, you can use the polyfill provided by MDN:
if (!String.prototype.endsWith) {
String.prototype.endsWith = function(searchString, position) {
var subjectString = this.toString();
if (typeof position !== 'number' || !isFinite(position) || Math.floor(position) !== position || position > subjectString.length) {
position = subjectString.length;
}
position -= searchString.length;
var lastIndex = subjectString.lastIndexOf(searchString, position);
return lastIndex !== -1 && lastIndex === position;
};
}
\s
represent a space, there is no need to add [space]
in the regex
var endSpace = /\s$/;
var str = "hello world ";
if (endSpace.test(str)) {
window.console.error("ends with space");
//return false; //commented since snippet is throwing an error
}
function test() {
var endSpace = /\s$/;
var str = document.getElementById('abc').value;
if (endSpace.test(str)) {
window.console.error("ends with space");
return false;
}
}
<input id="abc" />
<button onclick="test()">test</button>
var endSpace = / \s$/;
In the above line you are actually using 2 spaces, one is () and the second one is
\s
. That is the reason, your code is not working. Remove one of them.
var endSpace = / $/;
var str="hello world ";
if(endSpace.test(str)) {
window.console.error("ends with space"); return false;
}
You may use the following code snippet -
if(/\s+$/.test(str)) {
window.console.error("ends with space");
return false;
}
You can try this also:
var str="hello world ";
var a=str.slice(-1);
if(a==" ") {
console.log("ends with space");
}
$(document).ready(function() {
$("#butCheck").click(function() {
var checkString = $("#phrase").val();
if (checkString.endsWith(' ')) {
$("#result").text("space");
} else {
$("#result").text("no space");
}
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type='text' id="phrase"></input>
<input type="button" value="Check This" id="butCheck"></input>
<div id="result"></div>
Try this it will help to start and end white space in the string.
let begin_space_exp = /^\s/;
let end_space_exp = /\s$/;
/* Check for white space */
if (begin_space_exp.test(value) || end_space_exp.test(value)) {
return false;
}`
I found /^\s+$/ has "AND" conditon like this begin_space_exp.test(value) && end_space_exp.test(value) then both should be true.
else you can use
(/^\s+|\s+$/g).test(value);