我有一个 VueJS 应用程序,其中包含预填充数据的表单。 textarea 元素包含一些数据,如 UI 上所示
注意:(抱歉,我还没有足够的代表点来附加屏幕截图):
带引号的 UI 文本区域元素的屏幕截图
我无法修改后端提供数据的方式。
因此,有没有一种好方法可以从字符串中删除第一个和最后一个引号?我不想触摸内部文本,以防用户在其中添加引号。
'Hello World,welcome to "fooWorld!"' 的预期输出应为 Hello World,welcome to 'fooWorld!'
以下是我如何在 SPA 中使用数据的真实示例:
data() { return { entryNotes: this.post.entryNotes //<--- this is the data I need to format } }
P粉9305342802024-03-27 15:27:18
如何使用快速正则表达式来删除开始和结束引号?
data(){ return { entryNotes: this.post.entryNotes.replace(/^"/,"").replace(/"$/,"") } }
第一个正则表达式查找字符串的开头(用 ^ 表示),然后查找引号。第二个正则表达式查找引号,然后查找字符串结尾(字符串结尾用 $ 表示)。
您也可以这样做:
str.match(/^"?(.+?)"?$/)[1]
这个查找字符串 (^) 的开头,后跟一个 ",但是 ? 使其成为可选。然后括号捕获 .+,这意味着匹配任何内容。括号末尾之前的 ? 意味着停止匹配,因为尽快。然后它说寻找引号,但下一个问号说“可能”,然后寻找字符串的结尾($)。