108

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?

Jeremy
  • 1
  • 85
  • 340
  • 366
Patrick
  • 3,938
  • 6
  • 20
  • 32

4 Answers4

174

You can do it with regex easily,

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

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

Rajaprabhu Aravindasamy
  • 66,513
  • 17
  • 101
  • 130
92

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.

Jeremy
  • 1
  • 85
  • 340
  • 366
12

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,'.'))
Jed Fox
  • 2,979
  • 5
  • 28
  • 38
zer00ne
  • 41,936
  • 6
  • 41
  • 68
6

You can use simple regular expression

var str1 = "Notion,Data,Identity,"
str1.replace(/,$/,".")
MD SHAYON
  • 7,001
  • 45
  • 38