function replace( str, search, newval ) {
	if ( !isString( str ) ) {
		throw new TypeError( format( 'invalid argument. First argument must be a string. Value: `%s`.', str ) );
	}
	if ( isString( search ) ) {
		search = new RegExp( rescape( search ), 'g' );
	} else if ( !isRegExp( search ) ) {
		throw new TypeError( format( 'invalid argument. Second argument must be a string or regular expression. Value: `%s`.', search ) );
	}
	if ( !isString( newval ) && !isFunction( newval ) ) {
		throw new TypeError( format( 'invalid argument. Third argument must be a string or replacement function. Value: `%s`.', newval ) );
	}
	return base( str, search, newval );
}
Replaces search occurrences with a replacement string.

@param {string} str - input string
@param {(string|RegExp)} search - search expression
@param {(string|Function)} newval - replacement value or function
@throws {TypeError} first argument must be a string
@throws {TypeError} second argument argument must be a string or regular expression
@throws {TypeError} third argument must be a string or function
@returns {string} new string containing replacement(s)

@example
var str = 'beep';
var out = replace( str, 'e', 'o' );
// returns 'boop'

@example
var str = 'Hello World';
var out = replace( str, /world/i, 'Mr. President' );
// returns 'Hello Mr. President'

@example
var capitalize = require( '@stdlib/string/capitalize' );

var str = 'Oranges and lemons say the bells of St. Clement\'s';

function replacer( match, p1 ) {
    return capitalize( p1 );
}

var out = replace( str, /([^\s]*)/gi, replacer );
// returns 'Oranges And Lemons Say The Bells Of St. Clement\'s'