JavaScript (ES6), 22 bytes
Returns a Boolean value.
s=>/^(.*)\1+$/.test(s) Without a regular expression, 33 33 29 bytes
Returns a Boolean valueeither null (falsy) or an object (truthy).
s=>!!~(s+s).slice(1,-1).searchmatch(s) NB: Technically, \$s\$ is converted to a regular expression for match(), so the above title is a lie.