如何在Javascript中从字符串的开头和结尾修剪所有非字母数字字符?

Ale*_*u R 7 javascript regex

我有一些字符串,我想通过从开头和结尾删除所有非字母数字字符来清理.

它应该适用于这些字符串:

)&*@^#*^#&^%$text-is.clean,--^2*%#**)(#&^ --->> text-is.clean,--^2

-+~!@#$%,.-"^&example-text@is.clean,--^#*%#**)(#&^ --->> example-text@is.clean
Run Code Online (Sandbox Code Playgroud)

我有这个正则表达式,它从整个字符串中删除它们:

val.replace(/[^a-zA-Z0-9]/g,'')
Run Code Online (Sandbox Code Playgroud)

如何将其更改为仅从字符串的开头和结尾删除?

Pau*_* S. 10

修改当前的正则表达式与指定的开始或结束字符串^$使之贪婪.然后,您可以使用OR将两者链接在一起|.

val.replace(/^[^a-zA-Z0-9]*|[^a-zA-Z0-9]*$/g, '');
Run Code Online (Sandbox Code Playgroud)

这可以简化为a-z带有i所有字母和\d数字的标志

val.replace(/^[^a-z\d]*|[^a-z\d]*$/gi, '');
Run Code Online (Sandbox Code Playgroud)