如何在前端的json中添加单词之间的空格

mfpqipee  于 2023-11-20  发布在  其他
关注(0)|答案(2)|浏览(156)

我试图添加空格之间的话是来自json在前端,但我无法做到这一点是有什么办法做到这一点,这是我的代码.

const toSentenceCase = (str: string) => {
    return str.charAt(0).toUpperCase() + '' + str.slice(1).toLowerCase()
  }
  return (
      <div className='fv-row mb-10'>
        <label className='form-label fs-6 fw-bolder text-dark d-flex'>Intent type</label>
        <Form.Select
          aria-label='Select htmlInputTypes'
          className='form-control form-control-lg form-control-solid'
          value={newIntentType}
          onChange={handleTypeChange}
        >
          {defaultJson.map((item, index) => (
            <>
              <option value='' disabled selected hidden>
                Select a Intent Type
              </option>
              <option key={index} value={item.type}>
                {toSentenceCase(item.type)}
              </option>
            </>
          ))}
        </Form.Select>
      </div>

字符串
这是我的json

{
    "type": "textWithImage",
    "intent": {
      "id": null,
      "message": "Hi!",
      "trigger": 1,
      "metadata": {
        "payload": [
          {
            "url": "",
            "type": "null",
            "caption": "null"
          }
        ]
      },
      "userInput": false
    }
  },


即将到来的结果:Texý图像
预期结果:带图像的文本
我想这个文本与图像的结果,但不断IM得到错误的,我不希望文本是 Camel 情况下,但要在sentance情况下显示有任何方法来处理它请告诉我。

rt4zxlrg

rt4zxlrg1#

查找跟随在一个字符串后面的所有字符串,并将其替换为插入的空格:

input.replaceAll(/([a-z])([A-Z])/g, '$1 $2');

字符串
然后可以使用函数将整个字符串大写。
你也可以传递一个转换器函数来一次性转换成小写:

const input = 'TextWithImage';
const output = input.replaceAll(
  /([a-z])([A-Z])/g,
  (match, p1, p2) => `${p1} ${p2.toLowerCase()}`);
console.log(output);


请注意,这两种方法都不会处理a-z ASCII范围之外的数字、变音符号或字符。

kknvjkwl

kknvjkwl2#

您需要在字符串中每个前接“”的“字母前插入一个空格,然后将其删除。例如:

const toSentenceCase = (str) => {
  return str.charAt(0).toUpperCase() +
         str.slice(1).replace(/(?<=[a-z])(?=[A-Z])/g, ' ').toLowerCase()
}

console.log(toSentenceCase('textWithImage'))

字符串

相关问题