javascript - 什么正则表达式从Javascript中字符串的开头和结尾修剪任意标点符号?
问题描述
我有一个输入行,它接受一个包含两个实体的任意长度的字符串:一个来自小列表的标识符类型,以及一个可以包含字母、数字和标点符号的标识符。这两个实体由标点符号分隔,标点符号可能但不限于:| : / \ ,
我有一些代码可以在提供的字符串中找到标识符类型:
for(var i = 0; i < idTypes.length; i++){
var search = rawInput.toUpperCase().search(idTypes[i]);
if (search >= 0){
var inputType = idTypes[i];
var regEx = new RegExp(inputType, "i")
var inputContents = rawInput.replace(regEx,"");
console.log("This is type " + inputType + " with contents " + inputContents);
return [inputType,inputContents];
}
}
但是,这不会捕获用作分隔符的标点符号:
如果
rawinput = "T14 11/15/11 | WPK |"
然后
inputContents == "T14 11/15/11 | |"
而我想
inputContents == "T14 11/15/11"
是否有一个正则表达式会去除所有前导或尾随标点符号和空格,但会保留中间的标点符号?
解决方案
(.+?)\s+[^a-zA-Z0-9]+.*$
您可以在以下位置查看其测试: https ://regex101.com/r/stDlXi/1
如果您想专门查找标点符号,那么这也可以:(.+?)\s+[\|\\/\?!\.,;:-]+.*$
. 我省略了方括号、guillemets、省略号、撇号、引号等。如果您需要考虑它们,可以将它们包含在方括号内。
推荐阅读
- python - 从 Python 的列表中为现有文件的每一行添加一个额外的字母
- vert.x - vertx.executeBlocking 失败
- php - 如何在数组中添加字符串?
- django - django runserver 找不到静态文件,但是远程服务器可以
- powershell - 如何在 cmd /c 中设置 %ERRORLEVEL%?
- vb.net - 无法创建 Microsoft.VisualBasic.Logging.FileLogTraceListener,Microsoft.VisualBasic / 找不到路径的一部分
- android - 应用程序可以在不转到 Wifi 设置的情况下将手机/智能手机连接到 Wifi 网络吗?
- javascript - Chome 浏览器 onbeforeunload 事件无法显示警告弹出窗口,但如果我们打开 chrome 开发工具,则可以正常工作
- powershell - 如何在 PowerShell 中用连续数字重命名每个 .jpg 文件名
- bash - 基于 C++ 二进制运行时参数创建 Bash 脚本文件名