Files
kotlin-fork/libraries/stdlib/js/src/kotlin/regexp.kt
T
nikita.movshin 65244b4bea Update copyright.
Change the copyright from "JetBrains s.r.o." to
"JetBrains s.r.o. and Kotlin Project contributors"
Update only 2 lines copyright.
2019-04-23 20:09:22 +03:00

59 lines
1.9 KiB
Kotlin

/*
* Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors.
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
*/
package kotlin.js
/**
* Exposes the JavaScript [RegExp object](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/RegExp) to Kotlin.
*/
@Suppress("NOT_DOCUMENTED")
public external class RegExp(pattern: String, flags: String? = definedExternally) {
public fun test(str: String): Boolean
public fun exec(str: String): RegExpMatch?
public override fun toString(): String
/**
* The lastIndex is a read/write integer property of regular expressions that specifies the index at which to start the next match.
*/
public var lastIndex: Int
public val global: Boolean
public val ignoreCase: Boolean
public val multiline: Boolean
}
/**
* Resets the regular expression so that subsequent [RegExp.test] and [RegExp.exec] calls will match starting with the beginning of the input string.
*/
public fun RegExp.reset() {
lastIndex = 0
}
// TODO: Inherit from array or introduce asArray() extension
/**
* Represents the return value of [RegExp.exec].
*/
@Suppress("NOT_DOCUMENTED")
public external interface RegExpMatch {
public val index: Int
public val input: String
public val length: Int
}
/**
* Returns the entire text matched by [RegExp.exec] if the [index] parameter is 0, or the text matched by the capturing parenthesis
* at the given index.
*/
public inline operator fun RegExpMatch.get(index: Int): String? = asDynamic()[index]
/**
* Converts the result of [RegExp.exec] to an array where the first element contains the entire matched text and each subsequent
* element is the text matched by each capturing parenthesis.
*/
public inline fun RegExpMatch.asArray(): Array<out String?> = unsafeCast<Array<out String?>>()