#[repr(transparent)]pub struct JsString { /* private fields */ }
Expand description
Implementations§
source§impl JsString
impl JsString
source§impl JsString
impl JsString
source§impl JsString
impl JsString
sourcepub fn char_code_at(&self, index: u32) -> f64
pub fn char_code_at(&self, index: u32) -> f64
The charCodeAt()
method returns an integer between 0 and 65535
representing the UTF-16 code unit at the given index (the UTF-16 code
unit matches the Unicode code point for code points representable in a
single UTF-16 code unit, but might also be the first code unit of a
surrogate pair for code points not representable in a single UTF-16 code
unit, e.g. Unicode code points > 0x10000). If you want the entire code
point value, use codePointAt()
.
Returns NaN
if index is out of range.
source§impl JsString
impl JsString
sourcepub fn code_point_at(&self, pos: u32) -> JsValue
pub fn code_point_at(&self, pos: u32) -> JsValue
The codePointAt()
method returns a non-negative integer that is the
Unicode code point value.
source§impl JsString
impl JsString
source§impl JsString
impl JsString
sourcepub fn from_char_code(char_codes: &[u16]) -> JsString
pub fn from_char_code(char_codes: &[u16]) -> JsString
The static String.fromCharCode()
method returns a string created from
the specified sequence of UTF-16 code units.
Notes
There are a few bindings to from_char_code
in js-sys
: from_char_code1
, from_char_code2
, etc…
with different arities.
Additionally, this function accepts u16
for character codes, but
fixing others requires a breaking change release
(see https://github.com/rustwasm/wasm-bindgen/issues/1460 for details).
source§impl JsString
impl JsString
source§impl JsString
impl JsString
sourcepub fn from_code_point(code_points: &[u32]) -> Result<JsString, JsValue>
pub fn from_code_point(code_points: &[u32]) -> Result<JsString, JsValue>
The static String.fromCodePoint()
method returns a string created by
using the specified sequence of code points.
Exceptions
A RangeError is thrown if an invalid Unicode code point is given
Notes
There are a few bindings to from_code_point
in js-sys
: from_code_point1
, from_code_point2
, etc…
with different arities.
source§impl JsString
impl JsString
source§impl JsString
impl JsString
source§impl JsString
impl JsString
sourcepub fn last_index_of(&self, search_value: &str, from_index: i32) -> i32
pub fn last_index_of(&self, search_value: &str, from_index: i32) -> i32
The lastIndexOf()
method returns the index within the calling String
object of the last occurrence of the specified value, searching
backwards from fromIndex. Returns -1 if the value is not found.
source§impl JsString
impl JsString
source§impl JsString
impl JsString
source§impl JsString
impl JsString
source§impl JsString
impl JsString
source§impl JsString
impl JsString
source§impl JsString
impl JsString
source§impl JsString
impl JsString
sourcepub fn replace(&self, pattern: &str, replacement: &str) -> JsString
pub fn replace(&self, pattern: &str, replacement: &str) -> JsString
The replace()
method returns a new string with some or all matches of a pattern
replaced by a replacement. The pattern can be a string or a RegExp, and
the replacement can be a string or a function to be called for each match.
Note: The original string will remain unchanged.
source§impl JsString
impl JsString
sourcepub fn replace_with_function(
&self,
pattern: &str,
replacement: &Function
) -> JsString
pub fn replace_with_function( &self, pattern: &str, replacement: &Function ) -> JsString
source§impl JsString
impl JsString
sourcepub fn replace_by_pattern(
&self,
pattern: &RegExp,
replacement: &str
) -> JsString
pub fn replace_by_pattern( &self, pattern: &RegExp, replacement: &str ) -> JsString
source§impl JsString
impl JsString
sourcepub fn replace_by_pattern_with_function(
&self,
pattern: &RegExp,
replacement: &Function
) -> JsString
pub fn replace_by_pattern_with_function( &self, pattern: &RegExp, replacement: &Function ) -> JsString
source§impl JsString
impl JsString
sourcepub fn replace_all(&self, pattern: &str, replacement: &str) -> JsString
pub fn replace_all(&self, pattern: &str, replacement: &str) -> JsString
The replace_all()
method returns a new string with all matches of a pattern
replaced by a replacement. The pattern can be a string or a global RegExp, and
the replacement can be a string or a function to be called for each match.
Note: The original string will remain unchanged.
source§impl JsString
impl JsString
sourcepub fn replace_all_with_function(
&self,
pattern: &str,
replacement: &Function
) -> JsString
pub fn replace_all_with_function( &self, pattern: &str, replacement: &Function ) -> JsString
source§impl JsString
impl JsString
sourcepub fn replace_all_by_pattern(
&self,
pattern: &RegExp,
replacement: &str
) -> JsString
pub fn replace_all_by_pattern( &self, pattern: &RegExp, replacement: &str ) -> JsString
source§impl JsString
impl JsString
sourcepub fn replace_all_by_pattern_with_function(
&self,
pattern: &RegExp,
replacement: &Function
) -> JsString
pub fn replace_all_by_pattern_with_function( &self, pattern: &RegExp, replacement: &Function ) -> JsString
source§impl JsString
impl JsString
source§impl JsString
impl JsString
source§impl JsString
impl JsString
sourcepub fn split_by_pattern_limit(&self, pattern: &RegExp, limit: u32) -> Array
pub fn split_by_pattern_limit(&self, pattern: &RegExp, limit: u32) -> Array
source§impl JsString
impl JsString
sourcepub fn starts_with(&self, search_string: &str, position: u32) -> bool
pub fn starts_with(&self, search_string: &str, position: u32) -> bool
The startsWith()
method determines whether a string begins with the
characters of a specified string, returning true or false as
appropriate.
source§impl JsString
impl JsString
sourcepub fn to_locale_lower_case(&self, locale: Option<&str>) -> JsString
pub fn to_locale_lower_case(&self, locale: Option<&str>) -> JsString
The toLocaleLowerCase()
method returns the calling string value converted to lower case,
according to any locale-specific case mappings.
source§impl JsString
impl JsString
sourcepub fn to_locale_upper_case(&self, locale: Option<&str>) -> JsString
pub fn to_locale_upper_case(&self, locale: Option<&str>) -> JsString
The toLocaleUpperCase()
method returns the calling string value converted to upper case,
according to any locale-specific case mappings.
source§impl JsString
impl JsString
sourcepub fn to_lower_case(&self) -> JsString
pub fn to_lower_case(&self) -> JsString
The toLowerCase()
method returns the calling string value
converted to lower case.
source§impl JsString
impl JsString
source§impl JsString
impl JsString
sourcepub fn to_upper_case(&self) -> JsString
pub fn to_upper_case(&self) -> JsString
The toUpperCase()
method returns the calling string value converted to
uppercase (the value will be converted to a string if it isn’t one).
source§impl JsString
impl JsString
source§impl JsString
impl JsString
source§impl JsString
impl JsString
sourcepub fn trim_right(&self) -> JsString
pub fn trim_right(&self) -> JsString
The trimEnd()
method removes whitespace from the end of a string.
trimRight()
is an alias of this method.
source§impl JsString
impl JsString
sourcepub fn trim_start(&self) -> JsString
pub fn trim_start(&self) -> JsString
The trimStart()
method removes whitespace from the beginning of a
string. trimLeft()
is an alias of this method.
source§impl JsString
impl JsString
source§impl JsString
impl JsString
source§impl JsString
impl JsString
sourcepub fn raw_4(
call_site: &Object,
substitutions_1: &str,
substitutions_2: &str,
substitutions_3: &str,
substitutions_4: &str
) -> Result<JsString, JsValue>
pub fn raw_4( call_site: &Object, substitutions_1: &str, substitutions_2: &str, substitutions_3: &str, substitutions_4: &str ) -> Result<JsString, JsValue>
The static raw()
method is a tag function of template literals,
similar to the r
prefix in Python or the @
prefix in C# for string literals.
source§impl JsString
impl JsString
sourcepub fn raw_5(
call_site: &Object,
substitutions_1: &str,
substitutions_2: &str,
substitutions_3: &str,
substitutions_4: &str,
substitutions_5: &str
) -> Result<JsString, JsValue>
pub fn raw_5( call_site: &Object, substitutions_1: &str, substitutions_2: &str, substitutions_3: &str, substitutions_4: &str, substitutions_5: &str ) -> Result<JsString, JsValue>
The static raw()
method is a tag function of template literals,
similar to the r
prefix in Python or the @
prefix in C# for string literals.
source§impl JsString
impl JsString
sourcepub fn raw_6(
call_site: &Object,
substitutions_1: &str,
substitutions_2: &str,
substitutions_3: &str,
substitutions_4: &str,
substitutions_5: &str,
substitutions_6: &str
) -> Result<JsString, JsValue>
pub fn raw_6( call_site: &Object, substitutions_1: &str, substitutions_2: &str, substitutions_3: &str, substitutions_4: &str, substitutions_5: &str, substitutions_6: &str ) -> Result<JsString, JsValue>
The static raw()
method is a tag function of template literals,
similar to the r
prefix in Python or the @
prefix in C# for string literals.
source§impl JsString
impl JsString
sourcepub fn raw_7(
call_site: &Object,
substitutions_1: &str,
substitutions_2: &str,
substitutions_3: &str,
substitutions_4: &str,
substitutions_5: &str,
substitutions_6: &str,
substitutions_7: &str
) -> Result<JsString, JsValue>
pub fn raw_7( call_site: &Object, substitutions_1: &str, substitutions_2: &str, substitutions_3: &str, substitutions_4: &str, substitutions_5: &str, substitutions_6: &str, substitutions_7: &str ) -> Result<JsString, JsValue>
The static raw()
method is a tag function of template literals,
similar to the r
prefix in Python or the @
prefix in C# for string literals.
source§impl JsString
impl JsString
sourcepub fn try_from(val: &JsValue) -> Option<&JsString>
👎Deprecated: recommended to use dyn_ref instead which is now equivalent
pub fn try_from(val: &JsValue) -> Option<&JsString>
Returns the JsString
value of this JS value if it’s an instance of a
string.
If this JS value is not an instance of a string then this returns
None
.
sourcepub fn is_valid_utf16(&self) -> bool
pub fn is_valid_utf16(&self) -> bool
Returns whether this string is a valid UTF-16 string.
This is useful for learning whether String::from(..)
will return a
lossless representation of the JS string. If this string contains
unpaired surrogates then String::from
will succeed but it will be a
lossy representation of the JS string because unpaired surrogates will
become replacement characters.
If this function returns false
then to get a lossless representation
of the string you’ll need to manually use the iter
method (or the
char_code_at
accessor) to view the raw character codes.
For more information, see the documentation on JS strings vs Rust strings
sourcepub fn iter<'a>(
&'a self
) -> impl ExactSizeIterator<Item = u16> + DoubleEndedIterator<Item = u16> + 'a
pub fn iter<'a>( &'a self ) -> impl ExactSizeIterator<Item = u16> + DoubleEndedIterator<Item = u16> + 'a
Returns an iterator over the u16
character codes that make up this JS
string.
This method will call char_code_at
for each code in this JS string,
returning an iterator of the codes in sequence.
sourcepub fn as_char(&self) -> Option<char>
pub fn as_char(&self) -> Option<char>
If this string consists of a single Unicode code point, then this method
converts it into a Rust char
without doing any allocations.
If this JS value is not a valid UTF-8 or consists of more than a single
codepoint, then this returns None
.
Note that a single Unicode code point might be represented as more than
one code unit on the JavaScript side. For example, a JavaScript string
"\uD801\uDC37"
is actually a single Unicode code point U+10437 which
corresponds to a character ‘𐐷’.
Methods from Deref<Target = Object>§
sourcepub fn constructor(&self) -> Function
pub fn constructor(&self) -> Function
The constructor property returns a reference to the Object
constructor
function that created the instance object.
sourcepub fn has_own_property(&self, property: &JsValue) -> bool
pub fn has_own_property(&self, property: &JsValue) -> bool
The hasOwnProperty()
method returns a boolean indicating whether the
object has the specified property as its own property (as opposed to
inheriting it).
sourcepub fn is_prototype_of(&self, value: &JsValue) -> bool
pub fn is_prototype_of(&self, value: &JsValue) -> bool
The isPrototypeOf()
method checks if an object exists in another
object’s prototype chain.
sourcepub fn property_is_enumerable(&self, property: &JsValue) -> bool
pub fn property_is_enumerable(&self, property: &JsValue) -> bool
The propertyIsEnumerable()
method returns a Boolean indicating
whether the specified property is enumerable.
sourcepub fn to_locale_string(&self) -> JsString
pub fn to_locale_string(&self) -> JsString
The toLocaleString()
method returns a string representing the object.
This method is meant to be overridden by derived objects for
locale-specific purposes.
sourcepub fn to_string(&self) -> JsString
pub fn to_string(&self) -> JsString
The toString()
method returns a string representing the object.
Methods from Deref<Target = JsValue>§
pub const NULL: JsValue = JsValue{ idx: JSIDX_NULL, _marker: marker::PhantomData,}
pub const UNDEFINED: JsValue = JsValue{ idx: JSIDX_UNDEFINED, _marker: marker::PhantomData,}
pub const TRUE: JsValue = JsValue{ idx: JSIDX_TRUE, _marker: marker::PhantomData,}
pub const FALSE: JsValue = JsValue{ idx: JSIDX_FALSE, _marker: marker::PhantomData,}
sourcepub fn as_f64(&self) -> Option<f64>
pub fn as_f64(&self) -> Option<f64>
Returns the f64
value of this JS value if it’s an instance of a
number.
If this JS value is not an instance of a number then this returns
None
.
sourcepub fn as_string(&self) -> Option<String>
pub fn as_string(&self) -> Option<String>
If this JS value is a string value, this function copies the JS string
value into wasm linear memory, encoded as UTF-8, and returns it as a
Rust String
.
To avoid the copying and re-encoding, consider the
JsString::try_from()
function from js-sys
instead.
If this JS value is not an instance of a string or if it’s not valid
utf-8 then this returns None
.
UTF-16 vs UTF-8
JavaScript strings in general are encoded as UTF-16, but Rust strings
are encoded as UTF-8. This can cause the Rust string to look a bit
different than the JS string sometimes. For more details see the
documentation about the str
type which contains a few
caveats about the encodings.
sourcepub fn as_bool(&self) -> Option<bool>
pub fn as_bool(&self) -> Option<bool>
Returns the bool
value of this JS value if it’s an instance of a
boolean.
If this JS value is not an instance of a boolean then this returns
None
.
sourcepub fn is_undefined(&self) -> bool
pub fn is_undefined(&self) -> bool
Tests whether this JS value is undefined
sourcepub fn is_function(&self) -> bool
pub fn is_function(&self) -> bool
Tests whether the type of this JS value is function
.
sourcepub fn js_in(&self, obj: &JsValue) -> bool
pub fn js_in(&self, obj: &JsValue) -> bool
Applies the binary in
JS operator on the two JsValue
s.
sourcepub fn loose_eq(&self, other: &JsValue) -> bool
pub fn loose_eq(&self, other: &JsValue) -> bool
Compare two JsValue
s for equality, using the ==
operator in JS.
sourcepub fn unsigned_shr(&self, rhs: &JsValue) -> u32
pub fn unsigned_shr(&self, rhs: &JsValue) -> u32
Applies the binary >>>
JS operator on the two JsValue
s.
sourcepub fn checked_div(&self, rhs: &JsValue) -> JsValue
pub fn checked_div(&self, rhs: &JsValue) -> JsValue
Applies the binary /
JS operator on two JsValue
s, catching and returning any RangeError
thrown.
sourcepub fn pow(&self, rhs: &JsValue) -> JsValue
pub fn pow(&self, rhs: &JsValue) -> JsValue
Applies the binary **
JS operator on the two JsValue
s.
sourcepub fn lt(&self, other: &JsValue) -> bool
pub fn lt(&self, other: &JsValue) -> bool
Applies the binary <
JS operator on the two JsValue
s.
sourcepub fn le(&self, other: &JsValue) -> bool
pub fn le(&self, other: &JsValue) -> bool
Applies the binary <=
JS operator on the two JsValue
s.
sourcepub fn ge(&self, other: &JsValue) -> bool
pub fn ge(&self, other: &JsValue) -> bool
Applies the binary >=
JS operator on the two JsValue
s.
sourcepub fn gt(&self, other: &JsValue) -> bool
pub fn gt(&self, other: &JsValue) -> bool
Applies the binary >
JS operator on the two JsValue
s.
sourcepub fn unchecked_into_f64(&self) -> f64
pub fn unchecked_into_f64(&self) -> f64
Applies the unary +
JS operator on a JsValue
. Can throw.
Trait Implementations§
source§impl FromWasmAbi for JsString
impl FromWasmAbi for JsString
source§impl<'a> IntoWasmAbi for &'a JsString
impl<'a> IntoWasmAbi for &'a JsString
source§impl IntoWasmAbi for JsString
impl IntoWasmAbi for JsString
source§impl JsCast for JsString
impl JsCast for JsString
source§fn instanceof(val: &JsValue) -> bool
fn instanceof(val: &JsValue) -> bool
instanceof
check to see whether the JsValue
provided is an instance of this type. Read moresource§fn is_type_of(val: &JsValue) -> bool
fn is_type_of(val: &JsValue) -> bool
JsValue
provided
is a value of this type. Read moresource§fn unchecked_from_js(val: JsValue) -> Self
fn unchecked_from_js(val: JsValue) -> Self
source§fn unchecked_from_js_ref(val: &JsValue) -> &Self
fn unchecked_from_js_ref(val: &JsValue) -> &Self
source§fn has_type<T>(&self) -> boolwhere
T: JsCast,
fn has_type<T>(&self) -> boolwhere T: JsCast,
T
. Read moresource§fn dyn_into<T>(self) -> Result<T, Self>where
T: JsCast,
fn dyn_into<T>(self) -> Result<T, Self>where T: JsCast,
T
. Read moresource§fn dyn_ref<T>(&self) -> Option<&T>where
T: JsCast,
fn dyn_ref<T>(&self) -> Option<&T>where T: JsCast,
T
. Read moresource§fn unchecked_into<T>(self) -> Twhere
T: JsCast,
fn unchecked_into<T>(self) -> Twhere T: JsCast,
source§impl LongRefFromWasmAbi for JsString
impl LongRefFromWasmAbi for JsString
source§impl OptionFromWasmAbi for JsString
impl OptionFromWasmAbi for JsString
source§impl<'a> OptionIntoWasmAbi for &'a JsString
impl<'a> OptionIntoWasmAbi for &'a JsString
source§impl OptionIntoWasmAbi for JsString
impl OptionIntoWasmAbi for JsString
source§impl Ord for JsString
impl Ord for JsString
source§impl<'a> PartialEq<&'a String> for JsString
impl<'a> PartialEq<&'a String> for JsString
source§impl<'a> PartialEq<&'a str> for JsString
impl<'a> PartialEq<&'a str> for JsString
source§impl PartialEq<JsString> for JsString
impl PartialEq<JsString> for JsString
source§impl PartialEq<String> for JsString
impl PartialEq<String> for JsString
source§impl PartialOrd<JsString> for JsString
impl PartialOrd<JsString> for JsString
source§fn le(&self, other: &Self) -> bool
fn le(&self, other: &Self) -> bool
self
and other
) and is used by the <=
operator. Read moresource§impl RefFromWasmAbi for JsString
impl RefFromWasmAbi for JsString
§type Abi = <JsValue as RefFromWasmAbi>::Abi
type Abi = <JsValue as RefFromWasmAbi>::Abi
Self
are recovered from.§type Anchor = ManuallyDrop<JsString>
type Anchor = ManuallyDrop<JsString>
Self
for the duration of the
invocation of the function that has an &Self
parameter. This is
required to ensure that the lifetimes don’t persist beyond one function
call, and so that they remain anonymous.impl Eq for JsString
impl StructuralEq for JsString
impl StructuralPartialEq for JsString
Auto Trait Implementations§
impl RefUnwindSafe for JsString
impl !Send for JsString
impl !Sync for JsString
impl Unpin for JsString
impl UnwindSafe for JsString
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
source§impl<T> ReturnWasmAbi for Twhere
T: IntoWasmAbi,
impl<T> ReturnWasmAbi for Twhere T: IntoWasmAbi,
§type Abi = <T as IntoWasmAbi>::Abi
type Abi = <T as IntoWasmAbi>::Abi
IntoWasmAbi::Abi
source§fn return_abi(self) -> <T as ReturnWasmAbi>::Abi
fn return_abi(self) -> <T as ReturnWasmAbi>::Abi
IntoWasmAbi::into_abi
, except that it may throw and never
return in the case of Err
.