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

标签 javascript regex

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

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

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

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

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

val.replace(/[^a-zA-Z0-9]/g,'')

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

最佳答案

修改您当前的 RegExp 以使用 ^$ 指定字符串的开头或结尾,并使其变得贪婪。然后,您可以使用 OR | 将两者链接在一起。

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

这可以简化为 a-z,所有字母都使用 i 标记,数字使用 \d

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

关于javascript - 如何在 Javascript 中从字符串的开头和结尾 trim 所有非字母数字字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18250734/

相关文章:

javascript - 在继续执行另一个代码之前等待函数执行

Java正则表达式匹配结束不起作用

php - 从 HTML 标签中移除 on* JS 事件属性

Java 正则表达式 : How common is it? 它使用了多少资源?

javascript - 简单的 Javascript 程序 : Uncaught ReferenceError: x is not defined

javascript - Youtube API v3 对任何请求仅返回 19 NextPageToken

javascript - 不工作 JS 音频随机声音

javascript - 获取请求后的空数组(AngularJS)

regex - 用一个空行替换两个空行的正则表达式

正则表达式匹配一系列值