---
name: "JE::String"
section: "3pm"
platform: "linux"
package: "libje-perl"
version: "0.066-4"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/JE::String"
---

# JE::String(3pm)

JavaScript string value

## NAME

JE::String - JavaScript string value

## SYNOPSIS

```
  use JE;
  use JE::String;
  $j = JE->new;
  $js_str = new JE::String $j, "etetfyoyfoht";
  $perl_str = $js_str->value;
  $js_str->to_object; # retuns a new JE::String::Object;
```

## DESCRIPTION

This class implements JavaScript string values for JE. The difference in use between this and JE::Object::String is that that module implements string *objects,* while this module implements the *primitive* values.

The stringification operator is overloaded.

## THE FUNCTION

There are two exportable functions, `"surrogify"` and `"desurrogify"`, which convert characters outside the BMP into surrogate pairs, and convert surrogate pairs in the string input argument into the characters they represent, respectively, and return the modified string. E.g.:

```
  use JE::String qw 'desurrogify surrogify';

  {
          no warnings 'utf8';
          $str = "\x{d834}\x{dd2b}";
  }
  $str = desurrogify $str;  # $str now contains "\x{1d12b}" (double flat)
  $str = surrogify $str;    # back to "\x{d834}\x{dd2b}"
```

## SEE ALSO

- JE

  - JE::Types

  - JE::Object::String
