120

I have a very small query. I tried using concat, charAt, slice and whatnot but I didn't get how to do it.

Here is my string:

var str1 = "Notion,Data,Identity,"

I want to replace the last , with a . it should look like this.

var str1 = "Notion,Data,Identity."

Can someone let me know how to achieve this?

0

4 Answers 4

184

You can do it with regex easily,

var str1 = "Notion,Data,Identity,".replace(/.$/,".")

.$ will match any character at the end of a string.

Sign up to request clarification or add additional context in comments.

8 Comments

@Patrick That is regex components. . will match any character. And $ will join with that dot to match any character at the end of the string.
@SayedMohdAli If you want to pass a dynamic regex instead of static use new RegExp('yourRegexString').
@RajaprabhuAravindasamy does it replace?
I did expression = expression.replace("/"+expression[i]+"$/","");
@SayedMohdAli Use it like, result = yourString.replace(new RegExp('yourRegex'), "")
|
107

You can remove the last N characters of a string by using .slice(0, -N), and concatenate the new ending with +.

var str1 = "Notion,Data,Identity,";
var str2 = str1.slice(0, -1) + '.';
console.log(str2);
Notion,Data,Identity.

Negative arguments to slice represents offsets from the end of the string, instead of the beginning, so in this case we're asking for the slice of the string from the beginning to one-character-from-the-end.

Comments

13

This isn't elegant but it's reusable.

term(str, char)

str: string needing proper termination

char: character to terminate string with

var str1 = "Notion,Data,Identity,";

function term(str, char) {
  var xStr = str.substring(0, str.length - 1);
  return xStr + char;
}

console.log(term(str1,'.'))

Comments

7

You can use simple regular expression

var str1 = "Notion,Data,Identity,"
str1.replace(/,$/,".")

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.